A denotational account of C11-style memory
Ryan Kavanagh, Stephen Brookes

TL;DR
This paper presents a denotational semantics framework for C11-style memory models, enabling compositional reasoning and true concurrency representation for shared-memory concurrent programs.
Contribution
It introduces a novel denotational approach using pomsets for C11 memory, extending previous work to support diverse memory orderings and synchronization primitives.
Findings
Supports a wide range of memory orderings including acquire-release and relaxed
Enables compositional reasoning about concurrent programs
Provides a race-detection mechanism using footprints and local state views
Abstract
We introduce a denotational semantic framework for shared-memory concurrent programs in a C11-style memory model. This denotational approach is an alternative to techniques based on "execution graphs" and axiomatizations, and it allows for compositional reasoning. Our semantics generalizes from traces (sequences of actions) to pomsets (partial orders of actions): instead of traces and interleaving, we embrace "true" concurrency. We build on techniques from our prior work that gives a denotational semantics to SPARC TSO. We add support for C11's wider range of memory orderings, e.g., acquire-release and relaxed, and support for local variables and various synchronization primitives, while eliminating significant amounts of technical bookkeeping. Our approach features two main components. We first give programs a syntax-directed denotation in terms of sets of pomsets of memory actions. We…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed systems and fault tolerance · Logic, programming, and type systems
