Abstract
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 from 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.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
38 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Compiler Testing with Relaxed Memory Models;2024 IEEE/ACM International Symposium on Code Generation and Optimization (CGO);2024-03-02
2. An Axiomatic Basis for Computer Programming on the Relaxed Arm-A Architecture: The AxSL Logic;Proceedings of the ACM on Programming Languages;2024-01-05
3. Mechanised Operational Reasoning for C11 Programs with Relaxed Dependencies;Formal Aspects of Computing;2023-06-23
4. Putting Weak Memory in Order via a Promising Intermediate Representation;Proceedings of the ACM on Programming Languages;2023-06-06
5. Compound Memory Models;Proceedings of the ACM on Programming Languages;2023-06-06