Stephen N. Freund

Learn 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)
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)
This article presents a static race-detection analysis for multithreaded shared-memory programs, focusing on the Java programming language. The analysis is based on a type system that captures many common synchronization patterns. It supports classes with internal synchronization, classes that require client-side synchronization, and thread-local classes.(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)
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)
Software systems typically contain large APIs that are informally specified and hence easily misused. This paper presents the Sage programming language, which is designed to enforce precise interface specifications in a flexible manner. The Sage type system uses a synthesis of the type Dynamic, first-class types, and arbitrary refinement types. Since type(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)