PulseExploreJournal ClubDebatesTrendingResearchersJournals
Instagram
HomeExploreJournal ClubTrending
Synapse
⌘+K
Synapse
June 20, 2024Proceedings of the ACM on Programming Languages1 citationsOpen Access

Compositional Semantics for Shared-Variable Concurrency

View Full Paper
MSMikhail SvyatlovskiySMShai MermelsteinOLOri Lahav

Key Points

Key points are not available for this paper at this time.

Abstract

We revisit the fundamental problem of defining a compositional semantics for a concurrent programming language under sequentially consistent memory with the aim of equating the denotations of pieces of code if and only if these pieces induce the same behavior under all program contexts. While the denotational semantics presented by Brookes Information and Computation 127, 2 (1996) has been considered a definitive solution, we observe that Brookes's full abstraction result crucially relies on the availability of an impractical whole-memory atomic read-modify-write instruction. In contrast, we consider a language with standard primitives, which apply to a single variable. For that language, we propose an alternative denotational semantics based on traces that track program write actions together with the writes expected from the environment, and equipped with several closure operators to achieve necessary abstraction. We establish the adequacy of the semantics, and demonstrate full abstraction for the case that the analyzed code segment is loop-free. Furthermore, we show that by including a whole-memory atomic read in the language, one obtains full abstraction for programs with loops. To gain confidence, our results are fully mechanized in Coq.

Ask AI
Helpful
Bookmark
Share
View Full Paper

Cite This Study

Svyatlovskiy et al. (2024) studied this question.

synapsesocial.com/papers/68e63f62b6db6435875d10c9https://doi.org/10.1145/3656399
Ask AI
Helpful
Bookmark
Share
View Full Paper