|
ABSTRACT
The atomic block, a synchronization primitive provided to programmers in transactional memory systems, has the potential to greatly ease the development of concurrent software. However, atomic blocks can still be used incorrectly, and race conditions can still occur at the level of application logic. In this paper, we present a intraprocedural static analysis, formalized as a type system and proven sound, that helps programmers use atomic blocks correctly. Using access permissions, which describe how objects are aliased and modified, our system statically prevents race conditions and enforces typestate properties in concurrent programs. We have implemented a prototype static analysis for the Java language based on our system and have used it to verify several realistic examples.
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.
 |
1
|
Ali-Reza Adl-Tabatabai , Brian T. Lewis , Vijay Menon , Brian R. Murphy , Bratin Saha , Tatiana Shpeisman, Compiler and runtime support for efficient software transactional memory, Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, June 11-14, 2006, Ottawa, Ontario, Canada
|
| |
2
|
Cyrille Artho, Klaus Havelund, and Armin Biere. High level data races. In VVEIS '03: Proceedings of the Workshop on Verification and Validation of Enterprise Information Systems, pages 82--93, April 2003.
|
| |
3
|
Mike Barnett, Robert DeLine, Manuel Fähndrich, K. Rustan M. Leino, and Wolfram Schulte. Verification of object-oriented programs with invariants. Journal of Object Technology Special Issue: ECOOP 2003 workshop on Formal Techniques for Javalike Programs, 3(6):27--56, June 2004.
|
| |
4
|
Nels E. Beckman and Jonathan Aldrich. Verifying correct usage of atomic blocks and typestate: Technical companion. Technical Report CMU-ISR-08-126, Carnegie Mellon University, 2008. http://reports-archive.adm.cs.cmu.edu/anon/isr2008/CMU-ISR-08-126.pdf.
|
 |
5
|
|
 |
6
|
|
 |
7
|
Chandrasekhar Boyapati , Robert Lee , Martin Rinard, Ownership types for safe programming: preventing data races and deadlocks, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
| |
8
|
John Boyland. Checking interference with fractional permissions. In R. Cousot, editor, Static Analysis: 10th International Symposium, volume 2694 of Lecture Notes in Computer Science, pages 55--72, Berlin, Heidelberg, New York, 2003. Springer.
|
| |
9
|
Robert DeLine and Manuel Fähndrich. Typestates for objects. In ECOOP '04: European Conference on Object-Oriented Programming, pages 465--490. Springer, 2004.
|
 |
10
|
|
 |
11
|
|
| |
12
|
Stephen Freund and Shaz Qadeer. Checking concise specifications for multithreaded software. In Workshop on Formal Techniques for Java-like Programs, 2003.
|
| |
13
|
|
 |
14
|
|
 |
15
|
|
 |
16
|
|
| |
17
|
Tim Harris and Simon Peyton Jones. Transactional memory with data invariants. In TRANSACT '06: First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing, 2006.
|
 |
18
|
|
| |
19
|
Michael Hicks, Jeffrey S. Foster, and Polyvios Pratikakis. Lock inference for atomic sections. In TRANSACT '06: First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing, 2006.
|
 |
20
|
|
| |
21
|
|
| |
22
|
Cliff B. Jones. Specification and design of (parallel) programs. In Proceedings of IFIP'83, pages 321--332. North-Holland, 1983.
|
| |
23
|
|
 |
24
|
|
 |
25
|
|
| |
26
|
|
 |
27
|
|
 |
28
|
|
| |
29
|
Edwin Rodriguez, Matthew B. Dwyer, Cormac Flanagan, John Hatcliff, Gary T. Leavens, and Robby. Extending JML for modular specification and verification of multi-threaded programs. In ECOOP '05: Object-Oriented Programming 19th European Conference, pages 551--576, 2005.
|
 |
30
|
Amit Sasturkar , Rahul Agarwal , Liqiang Wang , Scott D. Stoller, Automated type-based analysis of data races and atomicity, Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, June 15-17, 2005, Chicago, IL, USA
[doi> 10.1145/1065944.1065956]
|
 |
31
|
|
 |
32
|
|
| |
33
|
|
 |
34
|
Mandana Vaziri , Frank Tip , Julian Dolby, Associating synchronization constraints with data in an object-oriented language, Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.334-345, January 11-13, 2006, Charleston, South Carolina, USA
|
| |
35
|
Philip Wadler. Linear types can change the world! In M. Broy and C. Jones, editors, IFIP TC 2 Working Conference on Programming Concepts and Methods, Sea of Galilee, Israel, pages 347--359. North Holland, 1990.
|
 |
36
|
|
| |
37
|
Yang Zhao. Checking Interference with Fractional Permissions. PhD thesis, University of Wisconsin-Milwaukee, August 2007.
|
|