Publication: A calculus of atomic actions
Program
KU-Authors
KU Authors
Co-Authors
Qadeer, Shaz
Advisor
Publication Date
2009
Language
English
Type
Conference proceeding
Journal Title
Journal ISSN
Volume 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.
Description
Source:
Conference Record of the Annual ACM Symposium on Principles of Programming Languages
Publisher:
N/A
Keywords:
Subject
Computer Engineering