DOI: 10.1007/978-3-540-70592-5_3
|View full text |Cite
|
Sign up to set email alerts
|

On Validity of Program Transformations in the Java Memory Model

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
112
0

Publication Types

Select...
7
1

Relationship

0
8

Authors

Journals

citations
Cited by 124 publications
(112 citation statements)
references
References 11 publications
0
112
0
Order By: Relevance
“…The C/C++11 concurrency model remains the state of the art for the semantics of a general-purpose shared-memory concurrent programming languages; it is, to the best of our knowledge, sound with respect to the compiler optimisation behaviour of implementations [29] (in contrast to the JMM [16,34]), it is provably compilable to relaxed hardware models [8,7,32], and our work here establishes a machine-checked DRF-SC theorem. But the thin-air problem shows that it allows too many behaviours, and we have seen here that that cannot be solved in a simple per-candidate-execution way, that the problem is not specific to relaxed atomics, that, while an operational solution for those examples is possible, it brings other difficulties, and that there are further problems with undefined behaviour.…”
Section: Resultsmentioning
confidence: 77%
See 2 more Smart Citations
“…The C/C++11 concurrency model remains the state of the art for the semantics of a general-purpose shared-memory concurrent programming languages; it is, to the best of our knowledge, sound with respect to the compiler optimisation behaviour of implementations [29] (in contrast to the JMM [16,34]), it is provably compilable to relaxed hardware models [8,7,32], and our work here establishes a machine-checked DRF-SC theorem. But the thin-air problem shows that it allows too many behaviours, and we have seen here that that cannot be solved in a simple per-candidate-execution way, that the problem is not specific to relaxed atomics, that, while an operational solution for those examples is possible, it brings other difficulties, and that there are further problems with undefined behaviour.…”
Section: Resultsmentioning
confidence: 77%
“…This is one of the ways in which the Java Memory Model is unsound with respect to (e.g.) the HotSpot implementation: the implementation does that, but the semantics (unintentionally) disallows it [16,34]. We return to other compiler optimisations in §4 and §6.…”
Section: Sc-violating Compiler Optimisationsmentioning
confidence: 99%
See 1 more Smart Citation
“…Memory models for Java and C++ guarantee sequential consistency for data-race-free programs [5,18], but semantics are murkier in the presence of races. The Java Memory Model gives racy programs weaker semantics that retain security and safety guarantees, but its complexities have resulted in subtle bugs despite extensive design effort [30]. C++ simply leaves semantics of racy programs undefined.…”
Section: Introductionmentioning
confidence: 99%
“…By considering parallel composition of speculations, we also include relaxed memory models [1] into this picture -though not those that try to capture compiler optimizations, that transform the code on the basis of semantical reasoning (see [4,20,24]). …”
Section: Introductionmentioning
confidence: 99%