Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages 2009
DOI: 10.1145/1480881.1480885
|View full text |Cite
|
Sign up to set email alerts
|

A calculus of atomic actions

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 verific… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
82
0

Year Published

2009
2009
2020
2020

Publication Types

Select...
6
1
1

Relationship

2
6

Authors

Journals

citations
Cited by 84 publications
(82 citation statements)
references
References 27 publications
0
82
0
Order By: Relevance
“…Out of the three techniques for memory reclamation that we consider in this paper, only restricted versions of the non-blocking stack with hazard pointers that we handle in [7, §B] have been verified: in concurrent separation logic [14], a combination of separation logic and temporal logic [6], a reduction-based tool [3] and interval temporal logic [16]. These papers use different reasoning methods from the one we propose, none of which has been grounded in a pattern common to different algorithms.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Out of the three techniques for memory reclamation that we consider in this paper, only restricted versions of the non-blocking stack with hazard pointers that we handle in [7, §B] have been verified: in concurrent separation logic [14], a combination of separation logic and temporal logic [6], a reduction-based tool [3] and interval temporal logic [16]. These papers use different reasoning methods from the one we propose, none of which has been grounded in a pattern common to different algorithms.…”
Section: Related Workmentioning
confidence: 99%
“…Reasoning naturally about protocols so subtle is very challenging. Out of the above algorithms, only restricted implementations of hazard pointers have been verified [14,6,3,16], and even in this case, the resulting proofs were very complicated (see §6 for discussion).…”
Section: Introductionmentioning
confidence: 99%
“…The programs include examples shown in Figure 1, 5 and 4. We also used two real world libraries, a device cache library [6] that reads data from a device and caches the data for subsequent reads, and a C implementation of the Simple Authentication and Security Layer (SASL). This library is a generic server side library that manages security context objects for user sessions.…”
Section: Methodsmentioning
confidence: 99%
“…Atomicity has been used as a key tool to circumvent this difficulty in many contexts, ranging from model checking [8] to static verification [4]. Atomicity is also a useful concept in programming; programmers tend to think of program executions as interleavings of atomic blocks, and do sequential reasoning on atomic blocks.…”
Section: Introductionmentioning
confidence: 99%
“…PADTAD This paper presents an annotation assistant to debug synchronization idioms used in the program. In this study, we build on the interactive verification tool QED [4]. QED is a verification method for checking assertions in concurrent programs.…”
Section: Introductionmentioning
confidence: 99%