Publication: A calculus of atomic actions
Loading...
Program
KU-Authors
Organization Authors
Co-Authors
Qadeer, Shaz
Date
Language
Embargo Status
N/A
Journal Title
Journal ISSN
Volume Title
Alternative Title
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.
Source
Publisher
N/A
Subject
Citation
item.page.haspartof
Source
Conference Record of the Annual ACM Symposium on Principles of Programming Languages
item.page.ispartofseries
item.page.edition
DOI
10.1145/1480881.1480885
item.page.datauri
item.page.link
Rights
N/A
Copyrights Note
Rights and licensing
N/A
