一句话:提出基于事件结构的并发内存语义,禁止 thin-air reads,并证明其与 promising 语义等价且更易扩展。
定义编程语言并发语义的核心挑战在于:既允许高效编译到现有硬件架构,又禁止程序读到 thin-air values(程序中不出现的值)。Kang 等人在 POPL'17 提出的 promising 语义是重大突破,但该语义过于复杂,并包含难以修复的缺陷和限制。本文提出一种基于事件结构的替代方案。作者证明该语义满足标准结果:DRF 定理、实现正确性与优化正确性,并建立其与 Kang 等人语义之间的形式联系。此外,该语义更易适配:作者将其扩展到 promising 语义不支持的 SC accesses 等特性,并排除了一些可疑行为。
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.