Effect-Dependent Transformations for Concurrent Programs
Nick Benton, Martin Hofmann, Vivek Nigam

TL;DR
This paper develops a denotational semantics for an abstract effect system in concurrent programming, enabling sound reasoning about program equivalences and transformations involving fine-grained concurrent data structures.
Contribution
It introduces a novel effect system based on abstract locations and game-based logical relations, validating transformations in concurrent programs that were previously unsound.
Findings
Proves soundness of effect-based program equivalences including parallelization.
Validates transformations involving concurrent data structures like Michael-Scott queues.
Enables reasoning about effects relative to abstract locations rather than physical memory.
Abstract
We describe a denotational semantics for an abstract effect system for a higher-order, shared-variable concurrent programming language. We prove the soundness of a number of general effect-based program equivalences, including a parallelization equation that specifies sufficient conditions for replacing sequential composition with parallel composition. Effect annotations are relative to abstract locations specified by contracts rather than physical footprints allowing us in particular to show the soundness of some transformations involving fine-grained concurrent data structures, such as Michael-Scott queues, that allow concurrent access to different parts of mutable data structures. Our semantics is based on refining a trace-based semantics for first-order programs due to Brookes. By moving from concrete to abstract locations, and adding type refinements that capture the possible…
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
TopicsLogic, programming, and type systems · Security and Verification in Computing · Distributed systems and fault tolerance
