DMCA
Types for safe locking: Static race detection for Java (2006)
Cached
Download Links
Venue: | ACM Transactions on Programming Languages and Systems |
Citations: | 91 - 9 self |
Citations
2321 | Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints - Cousot, Cousot - 1977 |
1780 | The Java Language Specification - Gosling, Joy, et al. - 1996 |
742 | Construction of abstract state graphs with pvs - Graf, Saidi - 1997 |
688 | Eraser: a dynamic data race detector for multithreaded programs.
- Savage, Burrows, et al.
- 1997
(Show Context)
Citation Context ...ependent, they are difficult to catch using run-time testing techniques. A single synchronization error in an otherwise correct program may yield a race condition whose cause takes weeks to identify [=-=Savage et al. 1997-=-]. This paper investigates a static analysis system for detecting race conditions in Java programs. The analysis supports the lock-based synchronization discipline by associating a lock with each shar... |
659 | Featherweight Java: A minimal core calculus for Java and GJ. In: - Igarashi, Pierce, et al. - 1999 |
638 | Extended static checking for Java - Flanagan, Leino, et al. - 2002 |
381 | Enforcing high-level protocols in low-level software - DeLine, Fähndrich - 2001 |
372 | Making the future safe for the past: adding genericity to the Java programming language. In - Bracha, Odersky, et al. - 1998 |
336 | Pizza into Java: translating theory into practice.
- Odersky, Wadler
- 1997
(Show Context)
Citation Context ... of Flatt, Krishnamurthi, and Felleisen [Flatt et al. 1998] as the starting point for our study. There have been many suggested language extensions for supporting Java classes parameterized by types [=-=Odersky and Wadler 1997-=-; Bracha et al. 1998; Agesen et al. 1997; Myers et al. 1997; Cartwright and Jr. 1998]. Our work uses a different notion of parameterization, namely, classes parameterized by values (more specifically,... |
323 | Extended static checking - Detlefs, Leino, et al. - 1998 |
323 | Region-based memory management. - Tofte, Talpin - 1997 |
300 | Escape analysis for Java. - CHOI, GUPTA, et al. - 1999 |
286 | Classes and Mixins”, - Flatt, Krishnamurthi, et al. - 1998 |
280 | Type-based race detection for java. - Flanagan, Freund - 2000 |
270 | Polymorphic effect systems.
- Lucassen, Gifford
- 1988
(Show Context)
Citation Context ...s that of GJ [Bracha et al. 1998], in that information about class parameters is not preserved at run time. The requires annotations used by rccjava are similar to effects [Jouvelot and Gifford 1991; =-=Lucassen and Gifford 1988-=-; Nielson 1996]. Thus, the analysis performed by Houdini/rcc includes a basic form of effect reconstruction [Tofte and Talpin 1994; 1997; Amtoft et al. 1997; Talpin and Jouvelot 1992], and the Houdini... |
267 | Compositional pointer and escape analysis for Java programs. In:
- Whaley, Rinard
- 1999
(Show Context)
Citation Context ...i/rcc infers thread-local annotations for classes whose instances are never shared between threads. Other work on this escape-analysis problem [Choi et al. 1999; Blanchet 1999; Bogda and Hölzle 1999; =-=Whaley and Rinard 1999-=-; Aldrich et al. 1999] has primarily focused on optimizing synchronization operations. Because of its intended application, Houdini/rcc includes an interface that provides explanations. 9. CONCLUSIONS... |
252 | A type and effect system for atomicity. - Flanagan, Qadeer - 2003 |
220 | Efficient and precise datarace detection for multithreaded object-oriented programs, - Choi, Loginov, et al. - 2002 |
209 | A parameterized type system for race-free Java programs. - Boyapati, Rinard - 2001 |
176 | Flow analysis for verifying properties of concurrent software systems,” - Dwyer, Clarke, et al. - 2004 |
175 | Parameterized types for Java.
- Myers, Bank, et al.
- 1997
(Show Context)
Citation Context ...e starting point for our study. There have been many suggested language extensions for supporting Java classes parameterized by types [Odersky and Wadler 1997; Bracha et al. 1998; Agesen et al. 1997; =-=Myers et al. 1997-=-; Cartwright and Jr. 1998]. Our work uses a different notion of parameterization, namely, classes parameterized by values (more specifically, lock expressions). Apart from this distinction, our class ... |
147 | Object race detection. - Praun, Gross - 2001 |
134 | Polymorphic type, region and effect inference.
- Talpin, Jouvelot
- 1992
(Show Context)
Citation Context ...nd Gifford 1991; Lucassen and Gifford 1988; Nielson 1996]. Thus, the analysis performed by Houdini/rcc includes a basic form of effect reconstruction [Tofte and Talpin 1994; 1997; Amtoft et al. 1997; =-=Talpin and Jouvelot 1992-=-], and the Houdini/rcc interface provides an explanation of why certain effects were inferred. The Houdini/rcc algorithm can be viewed as an abstract interpretation [Cousot and Cousot 1977], where the... |
131 | Evaluating deadlock detection methods for concurrent software. - Corbett - 1996 |
128 | Types for safe locking - Flanagan, Abadi - 1999 |
123 | Removing unnecessary synchronization in Java - Bogda, Hölzle - 1999 |
115 | Type-safe multithreading in cyclone. - Grossman - 2003 |
110 | An introduction to programming with threads. - Birrell - 1989 |
110 | Algebraic reconstruction of types and effects - Jouvelot, Gifford - 1991 |
108 | Escape Analysis for Object-Oriented Languages: Application to Java. - Blanchet |
102 | Adding type parameterization to the Java language - Agesen, Freund, et al. - 1997 |
93 | WebL: a programming language for the Web, in: - Kistler, Marais - 1998 |
91 | Proving java type soundness,”
- Syme
- 1999
(Show Context)
Citation Context ... Month Year.s26 · Abadi et al. A number of formal calculi for Java have been presented in recent literature. These include attempts to model the entire Java language [Drossopoulou and Eisenbach 1997; =-=Syme 1997-=-; Nipkow and von Oheimb 1998] and, also, smaller systems designed to study specific features and extensions [Igarashi et al. 2001]. We chose to use the ClassicJava calculus of Flatt, Krishnamurthi, an... |
87 | A partially deadlock-free typed process calculus. - Kobayashi - 1998 |
86 | Compatible genericity with run-time types for the Java programming language - Cartwright, Steele - 1998 |
83 | Verifying safety properties of concurrent Java programs using 3-valued logic. - Yahav - 2001 |
75 | Types for atomicity - Flanagan, Qadeer - 2003 |
73 | Barrier inference. - Aiken, Gay - 1998 |
72 | Static analyses for eliminating unnecessary synchronization from java programs - Aldrich, Chambers, et al. - 1999 |
65 |
Warlock: a static data race analysis tool.
- Sterling
- 1993
(Show Context)
Citation Context ...veloped for detecting race conditions, both statically and dynamically. We review many of them below. Several of these tools have been developed since the initial publication of our results. Warlock [=-=Sterling 1993-=-] is a static race-detection system for ANSI C programs. It supports the lock-based synchronization discipline through annotations similar to ours. However, Warlock uses a different analysis mechanism... |
64 | Guava: A dialect of Java without data races - Bacon, Strom, et al. - 2000 |
64 | Pointer and escape analysis for multithreaded programs,” - Salcianu, Rinard - 2001 |
60 | Java is type safe - probably
- Drossopoulou, Eisenbach
- 1997
(Show Context)
Citation Context ...s and Systems, Vol. TBD, No. TDB, Month Year.s26 · Abadi et al. A number of formal calculi for Java have been presented in recent literature. These include attempts to model the entire Java language [=-=Drossopoulou and Eisenbach 1997-=-; Syme 1997; Nipkow and von Oheimb 1998] and, also, smaller systems designed to study specific features and extensions [Igarashi et al. 2001]. We chose to use the ClassicJava calculus of Flatt, Krishn... |
51 | Object types against races, in - Flanagan, Abadi - 1999 |
51 | Type inference against races - Flanagan, Freund - 2004 |
49 | Detecting deadlocks in concurrent systems - Fajstrup, Goubault, et al. - 1998 |
49 | Detecting race conditions in large programs. - Flanagan, Freund - 2001 |
49 |
Implementation of the typed call-by-value lambda-calculus using a stack of regions
- Tofte, Talpin
- 1994
(Show Context)
Citation Context ...sed by rccjava are similar to effects [Jouvelot and Gifford 1991; Lucassen and Gifford 1988; Nielson 1996]. Thus, the analysis performed by Houdini/rcc includes a basic form of effect reconstruction [=-=Tofte and Talpin 1994-=-; 1997; Amtoft et al. 1997; Talpin and Jouvelot 1992], and the Houdini/rcc interface provides an explanation of why certain effects were inferred. The Houdini/rcc algorithm can be viewed as an abstrac... |
47 | Type and effect systems
- NIELSON, NIELSON
- 1999
(Show Context)
Citation Context ... 1998], in that information about class parameters is not preserved at run time. The requires annotations used by rccjava are similar to effects [Jouvelot and Gifford 1991; Lucassen and Gifford 1988; =-=Nielson 1996-=-]. Thus, the analysis performed by Houdini/rcc includes a basic form of effect reconstruction [Tofte and Talpin 1994; 1997; Amtoft et al. 1997; Talpin and Jouvelot 1992], and the Houdini/rcc interface... |
44 | Oheimb. Java-light is type-safe - definitely - Nipkow, von - 1998 |
38 | Exploiting purity for atomicity. - Flanagan, Freund, et al. - 2005 |
38 | Checking java programs via guarded commands
- Leino, Saxe, et al.
- 1999
(Show Context)
Citation Context ...ool. It has been used to catch race conditions in several programs, including an X-windows library. The extended static checker for Java (ESC/Java) is a tool for static detection of software defects [=-=Leino et al. 1999-=-; Flanagan et al. 2002; Detlefs et al. 1998]. It uses an underlying automatic theorem prover to reason about program behavior and to verify the absence of certain kinds of errors, such as null derefer... |
37 | An empirical comparison of static concurrency analysis techniques”. - Chamillard, Clarke, et al. - 1996 |
32 | Typechecking Dependent Types and Subtypes - Cardelli - 1986 |
30 | An implicitly-typed deadlock-free process calculus.
- Kobayashi, Saito, et al.
- 2000
(Show Context)
Citation Context ...these include model checking [Chamillard et al. 1996; Corbett 1996; Fajstrup et al. 1998; Yahav 2001], dataflow analysis [Dwyer and Clarke 1994], and type systems for process calculi [Kobayashi 1998; =-=Kobayashi et al. 2000-=-]. ACM Transactions on Programming Languages and Systems, Vol. TBD, No. TDB, Month Year.s26 · Abadi et al. A number of formal calculi for Java have been presented in recent literature. These include a... |
28 | Double-checked locking: An optimization pattern for efficiently initializing and accessing thread-safe objects
- Schmidt, Harrison
- 1996
(Show Context)
Citation Context ...nized increments of global performance counters, where any resulting race conditions will not cause the resulting count to be substantially incorrect, and patterns like double-checked initialization [=-=Schmidt and Harrison 1997-=-], among others. Figure 6 contains an excerpt from java.util.Vector that illustrates a typical race condition caught during our experiments. Suppose that there are two threads manipulating a shared Ve... |
27 | Annotation inference for modular checkers, - Flanagan, Joshi, et al. - 2001 |
26 | an annotation assistant for ESC/Java - Flanagan, Leino, et al. |
21 | Java is type safe—probably - Drossopoulou, Eisenbach - 1997 |
17 | Mobile Ambient Synchronization. - Cardelli - 1997 |
16 | A type system for preventing data races and deadlocks in Java programs - Boyapati, Lee, et al. - 2002 |
11 | Type and behaviour reconstruction for higher-order concurrent programs.
- Amtoft, Nielson, et al.
- 1997
(Show Context)
Citation Context ... effects [Jouvelot and Gifford 1991; Lucassen and Gifford 1988; Nielson 1996]. Thus, the analysis performed by Houdini/rcc includes a basic form of effect reconstruction [Tofte and Talpin 1994; 1997; =-=Amtoft et al. 1997-=-; Talpin and Jouvelot 1992], and the Houdini/rcc interface provides an explanation of why certain effects were inferred. The Houdini/rcc algorithm can be viewed as an abstract interpretation [Cousot a... |
1 | Types for Safe Locking: Static Race Detection for Java • 253 - AMTOFT, NIELSON, et al. - 1997 |
1 | Java Developers Kit, version 1.1. available from http://java.sun.com - JavaSoft - 1998 |
1 |
Types for Safe Locking · 29
- Flanagan, Abadi
- 1999
(Show Context)
Citation Context ...ction 8, and we conclude in Section 9. The Appendix contains a formal definition of the type system and proofs. This paper is based on work presented in preliminary form at conferences and workshops [=-=Flanagan and Abadi 1999-=-b; 1999a; Flanagan and Freund 2000; 2001]. Some of that work focused on lambda calculi and object calculi (rather than Java), and some relied on type constructions not considered here (for example, ex... |
1 | Compaq Systems Research Center, Palo Alto, CA. Also appeared in Formal Techniques for Java Programs, workshop proceedings - Rep - 1999 |
1 | Performance Evaluation Corporation. 2000. SPEC JBB2000. Available from http://www.spec.org/osg/jbb2000 - Standard |