2015
DOI: 10.1007/978-3-662-46669-8_12
|View full text |Cite
|
Sign up to set email alerts
|

The Problem of Programming Language Concurrency Semantics

Abstract: Abstract. Despite decades of research, we do not have a satisfactory concurrency semantics for any general-purpose programming language that aims to support concurrent systems code. The Java Memory Model has been shown to be unsound with respect to standard compiler optimisations, while the C/C++11 model is too weak, admitting undesirable thin-air executions.Our goal in this paper is to articulate this major open problem as clearly as is currently possible, showing how it arises from the combination of multipr… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
100
0

Year Published

2016
2016
2021
2021

Publication Types

Select...
5
2
1

Relationship

4
4

Authors

Journals

citations
Cited by 86 publications
(100 citation statements)
references
References 39 publications
(53 reference statements)
0
100
0
Order By: Relevance
“…Happens-before (hb) is a transitive relation that includes sequenced-before and synchronisation edges, and puts initial events before all other events. 10 We use hbl to abbreviate happens-before to events on the same location. A write is visible (vis) to a read if it is the most recent write to that location in happens-before.…”
Section: C11 Axiomsmentioning
confidence: 99%
See 2 more Smart Citations
“…Happens-before (hb) is a transitive relation that includes sequenced-before and synchronisation edges, and puts initial events before all other events. 10 We use hbl to abbreviate happens-before to events on the same location. A write is visible (vis) to a read if it is the most recent write to that location in happens-before.…”
Section: C11 Axiomsmentioning
confidence: 99%
“…Correctness in any relaxed memory setting is notoriously evasive; indeed, the subtleties of relaxed memory have previously led to confirmed bugs in language specifications [7,10], deployed processors [1], compilers [27,40] and vendor-endorsed programming guides [3]. The importance of correctness in the context of C11 is well-known.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…These labels are analogous to the notion of an abstract program counter that is found in many approaches to reasoning about concurrent programs [16], so that it is possible to talk about the particular program statement that any particular thread is trying to execute. They allow the semantics to track the progress of each thread while also allowing the non-deterministic interleaving of atomic actions.…”
Section: Weak Pmlmentioning
confidence: 99%
“…However, we currently cannot handle POWER and ARM without additional formalisms. Recent work [14] studies the difficulty of devising an axiomatic memory model that is consistent with the standard compiler optimizations for C11/C++11. Such fine-grained handling of desirable/undesirable thin-air executions is outside of the scope of our work.…”
Section: Related Workmentioning
confidence: 99%