2009
DOI: 10.5381/jot.2009.8.4.a2
|View full text |Cite
|
Sign up to set email alerts
|

An Operational Semantics including ‘Volatile’ for Safe Concurrency.

Abstract: Abstract. In this paper, we define a novel "write-key" operational semantics for a kernel language with fork-join parallelism, synchronization and "volatile" fields. We prove that programs that never suffer write-key errors are exactly those that are "data race free" and also those that are "correctly synchronized" in the Java memory model. This 3-way equivalence is proved using Twelf.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
6
0

Year Published

2011
2011
2013
2013

Publication Types

Select...
2
1
1

Relationship

0
4

Authors

Journals

citations
Cited by 4 publications
(6 citation statements)
references
References 21 publications
0
6
0
Order By: Relevance
“…Boyland [8] formalises in Twelf a semantics for a simple language with allocation, synchronisation, volatiles, thread spawns and joins, which may raise an error upon a data race. He shows that a program never raises such errors iff it is data-race free in the JMM sense.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Boyland [8] formalises in Twelf a semantics for a simple language with allocation, synchronisation, volatiles, thread spawns and joins, which may raise an error upon a data race. He shows that a program never raises such errors iff it is data-race free in the JMM sense.…”
Section: Related Workmentioning
confidence: 99%
“…We extend our model accordingly ( § §2.1,2.2). Following [8,9], we interleave all threads and reconstruct the fundamental notions of the JMM a posteriori ( §2.3).…”
Section: Introductionmentioning
confidence: 99%
“…It features dynamic memory allocation, thread spawns and joins, the wait-notify mechanism, interruption, and infinite executions. Each of these is well understood and has been formalised before (e.g., Liu and Moore [2003]; Petri and Huisman [2008]; Farzan et al [2004aFarzan et al [ , 2004b), but their combination with the memory model is novel and results in subtle interactions, which previous JMM formalisations have missed [Aspinall andŠevčík 2007a;Cenciarelli et al 2007;Huisman and Petri 2007;Boyland 2009]. I illustrate these cases with new examples and show how to deal with them.…”
Section: Introductionmentioning
confidence: 93%
“…In contrast, my stack of semantics leads to modular proofs with explicit assumptions at the interfaces. Boyland [2009] formalises in Twelf a semantics for a simple language with allocation, synchronisation, volatiles, thread spawns and joins, which may raise an error upon a data race. He shows that a program never raises such errors if and only if it is datarace free in the JMM sense.…”
Section: Related Workmentioning
confidence: 99%
“…To the best of our knowledge, only Boyland [12] describes an operational semantics for a Java-like language including volatile variables. Boyland proposes the notion of write-key to distinguish between a volatile and a normal variable read/write.…”
Section: Lock-free Data Structuresmentioning
confidence: 99%