Learn More
\begin{abstract} Multithreaded programs are notoriously prone to race conditions. Prior work on dynamic race detectors includes fast but imprecise race detectors that report false alarms, as well as slow but precise race detectors that never report false alarms. The latter typically use expensive vector clock operations that require time linear in the(More)
This paper presents a static race detection analysis for multithreaded Java programs. Our analysis is based on a formal type system that is capable of capturing many common synchronization patterns. These patterns include classes with internal synchronization, classes thatrequire client-side synchronization, and thread-local classes. Experience checking(More)
In the standard Java implementation, a Java language program is compiled to Java bytecode. This bytecode may be sent across the network to another site, where it is then interpreted by the Java Virtual Machine. Since bytecode may be written by hand, or corrupted during network transmission, the Java Virtual Machine contains a <i>bytecode verifier</i> that(More)
Evidence has indicated that the right frontal cortex is preferentially involved in self-face recognition. To test this further, we employed a face identification task and examined hand response differences (N=10). Pictures of famous faces were combined with pictures of the participants' faces (self) and their co-workers' faces (familiar). These images were(More)
Subjects were exposed to pictures of self and others (e.g., friend, stranger, and famous people) to determine if there was an advantage in reaction time and accuracy in identifying the self. It was found that upright and inverted self-faces were identified more rapidly than non-self faces when subjects responded with their left hand, which in other tasks(More)
Atomicity is a fundamental correctness property in multithreaded programs, both because atomic code blocks are amenable to sequential reasoning (which significantly simplifies correctness arguments), and because atomicity violations often reveal defects in a program's synchronization structure. Unfortunately, all atomicity analyses developed to date are(More)
Ensuring the reliability of multithreaded software systems is difficult due to the interaction between threads. This paper describes the design and implementation of a static checker for such systems. To avoid considering all possible thread interleavings, the checker uses assume-guarantee reasoning, and relies on the programmer to specify an environment(More)
Evidence suggests that autobiographical memory, self-related semantic category judgements, and self-identification tasks may be lateralised, with preferential activity in the right anterior temporal and prefrontal cortex. To test this hypothesis, participants (N=10) were presented with morphed images of themselves (self) combined with a famous face. A(More)
Although the Java programming language has achieved widespread acceptance, one feature that seems sorely missed is the ability to use type parameters (as in Ada generics, C++ templates, and ML polymorphic functions or data types) to allow a general concept to be instantiated to one or more specific types. In this paper, we propose parameterized classes and(More)