The key challenge in defining the concurrency semantics of a programming language is how to enable the most efficient compilation to existing hardware architectures, and yet forbid programs to reading thin-air values, i.e. ones that do not appear in the program. At POPL’17, Kang et al. achieved a major breakthrough by introducing the `promising’ semantics that came with results showing that it was a good candidate solution to the problem. Unfortunately, however, the promising semantics is rather complicated, and due to its complexity it contains some flaws and limitations that are very hard to address.
In response, we present an alternative solution to this problem based on event structures. We show that it is indeed a solution by establishing the standard results about the semantics (DRF theorems, implementation and optimization correctness) as well as a formal connection to the semantics of Kang et al. Further, we show that it is easier to adapt, by extending the semantics to cover features (such as SC accesses) that are not supported by Kang et al. and to rule out some dubious behaviors admitted by the promising semantics.
|Grounding Thin-Air Reads with Event Structures (popl19-talk.pdf)||532KiB|
Conference DayThu 17 JanDisplayed time zone: Belfast change
13:45 - 14:51
|On Library Correctness under Weak Memory Consistency|
Azalea RaadMPI-SWS, Germany, Marko DokoMPI-SWS, Germany, Lovro RožićMPI-SWS, Germany, Ori LahavTel Aviv University, Viktor VafeiadisMPI-SWS, GermanyLink to publication DOI Pre-print Media Attached File Attached
|Bridging the Gap Between Programming Languages and Hardware Weak Memory Models|
Anton PodkopaevHigher School of Economics, JetBrains Research, Ori LahavTel Aviv University, Viktor VafeiadisMPI-SWS, GermanyLink to publication DOI Pre-print Media Attached File Attached
|Grounding Thin-Air Reads with Event Structures|
Research PapersLink to publication DOI Media Attached File Attached