ACM Home Page
Please provide us with feedback. Feedback
Type-based race detection for Java
Full text PdfPdf (237 KB)
Source ACM SIGPLAN Notices archive
Volume 35 ,  Issue 5  (May 2000) table of contents
Pages: 219 - 232  
Year of Publication: 2000
ISSN:0362-1340
Also published in ...
Authors
Cormac Flanagan  Compaq Systems Research Center, 130 Lytton Ave., Palo Alto, CA
Stephen N. Freund  Department of Computer Science, Stanford University, Stanford, CA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 100,   Citation Count: 94
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/358438.349328
What is a DOI?

ABSTRACT

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 over 40,000 lines of Java code with the type system demonstrates that it is an effective approach for eliminating races conditions. On large examples, fewer than 20 additional type annotations per 1000 lines of code were required by the type checker, and we found a number of races in the standard Java libraries and other test programs.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
ACSE99
AFM97
AG98
 
ANN97
BH99
 
Bir89
Andrew D. Birrell. An introduction to programming with threads. Research Report 35, Digital Equipment Corporation Systems Research Center, 1989.
Bla99
 
BLM96
BOSW98
 
Car97
Luca Cardelli. Mobile ambient synchronization. Technical Report 1997-013, Digital Systems Research Center, Pale Alto, CA, July 1997.
CGS+99
CJ98
 
DE97
S. Drossopoulou and S. Eisenbach. Java is type safe --probably. In European Conference On Object Oriented Programming, pages 389-418, 1997.
 
DLNS98
David L. Detlefs, K. Rustan M. Leino, Greg Nelson, and James B. Saxe. Extended static checking. Research Report 159, Compaq Systems Research Center, 130 Lytton Ave., Pale Alto, CA 94301, USA, December 1998.
 
FA99a
 
FA99b
FKF98
 
GJS96
IPW99
 
Jav98
JavaSoft. Java Developers Kit, version 1.1. http://j ava. sun. corn, 1998.
JG91
 
KM98
LG88
 
LSS99
K. Rustan M. Leino, James B. Saxe, and Raymie Stata. Checking Java programs via guarded commands. Technical Report 1999-002, Compaq Systems Research Center, Palo Alto, CA, May 1999. Also appeared in Formal Techniques for Java Programs, workshop proceedings. Bart Jacobs, Gary T. Leavens, Peter Muller, and Arnd Poetzsch-Heffter, editors. Technical Report 251, Fernuniversitat Hagen, 1999.
Nie96
NvO98
OW97
SBN+97
 
Ste93
Nicholas Sterling. Warlock: A static data race analysis tool. In USENIX Winter Technical Conference, pages 97-106, 1993.
 
Sym97
Don Syme. Proving Java type soundness. Technical Report 427, University of Cambridge Computer Laboratory Technical Report, 1997.
 
TJ92
Jean-Pierre Talpin and Pierre Jouvelot. Polymorphic type, region and effect inference. Journal of Functional Programming, 2(3):245-271, 1992.
TT94
 
TT97
WR99

CITED BY  94

Collaborative Colleagues:
Cormac Flanagan: colleagues
Stephen N. Freund: colleagues