| A calculus of atomic actions |
| Full text |
Pdf
(321 KB)
|
Source
|
Annual Symposium on Principles of Programming Languages
archive
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
table of contents
Savannah, GA, USA
SESSION: Concurrency
table of contents
Pages: 2-15
Year of Publication: 2009
ISBN:978-1-60558-379-2
Also published in ...
|
|
Authors
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 16, Downloads (12 Months): 263, Citation Count: 1
|
|
|
ABSTRACT
We present a proof calculus and method for the static verification of assertions and procedure specifications in shared-memory concurrent programs. The key idea in our approach is to use atomicity as a proof tool and to simplify the verification of assertions by rewriting programs to consist of larger atomic actions. We propose a novel, iterative proof style in which alternating use of abstraction and reduction is exploited to compute larger atomic code blocks in a sound manner. This makes possible the verification of assertions in the transformed program by simple sequential reasoning within atomic blocks, or significantly simplified application of existing concurrent program verification techniques such as the Owicki-Gries or rely-guarantee methods. Our method facilitates a clean separation of concerns where at each phase of the proof, the user worries only about only either the sequential properties or the concurrency control mechanisms in the program. We implemented our method in a tool called QED. We demonstrate the simplicity and effectiveness of our approach on a number of benchmarks including ones with intricate concurrency protocols.
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
|
E. A. Ashcroft. Proving assertions about parallel programs. J. Comput. Syst. Sci., 10(1):110--135, 1975.
|
| |
2
|
M. Barnett, B.-Y. E. Chang, R. DeLine, B. Jacobs, and K. R. M. Leino. Boogie: A modular reusable verifier for object-oriented programs. FMCO '05: 4th International Symposium on Formal Methods for Components and Objects, pages 364--387, 2005.
|
| |
3
|
|
| |
4
|
|
| |
5
|
|
| |
6
|
L. M. de Moura and N. Björner. Z3: An efficient SMT solver. In TACAS '08: Proceedings of the 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, volume 4963 of Lecture Notes in Computer Science, pages 337--340. Springer, 2008.
|
| |
7
|
|
| |
8
|
T. Elmas, S. Qadeer, and S. Tasiran. A calculus of atomic actions. Technical Report MSR-TR-2008-99, Microsoft Research, 2008.
|
 |
9
|
|
| |
10
|
|
 |
11
|
Cormac Flanagan , K. Rustan M. Leino , Mark Lillibridge , Greg Nelson , James B. Saxe , Raymie Stata, Extended static checking for Java, Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, June 17-19, 2002, Berlin, Germany
|
 |
12
|
|
| |
13
|
S. Freund and S. Qadeer. Checking concise specifications for multithreaded software. Journal of Object Technology, 3(6):81--101, 2004.
|
| |
14
|
|
| |
15
|
|
| |
16
|
C. B. Jones. Development Methods for Computer Programs including a Notion of Interference. PhD thesis, Oxford University, June 1981.
|
 |
17
|
|
 |
18
|
|
| |
19
|
|
 |
20
|
|
 |
21
|
|
 |
22
|
|
 |
23
|
|
| |
24
|
|
| |
25
|
Q. Xu, W. P. de Roever, and J. He. The rely-guarantee method for verifying shared variable concurrent programs. Formal Aspects of Computing, 9(2):149--174, 1997.
|
CITED BY
|
|
Tayfun Elmas , Ali Sezgin , Serdar Tasiran , Shaz Qadeer, An annotation assistant for interactive debugging of programs with common synchronization idioms, Proceedings of the 7th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, p.1-11, July 19-20, 2009, Chicago, Illinois
|
|