Disentangling Parallelism and Interference in Game Semantics

by   Simon Castellan, et al.

Game semantics is a denotational semantics presenting compositionally the computational behaviour of various kinds of effectful programs. One of its celebrated achievement is to have obtained full abstraction results for programming languages with a variety of computational effects, in a single framework. This is known as the semantic cube or Abramsky's cube, which for sequential deterministic programs establishes a correspondence between certain conditions on strategies (”innocence”, ”well-bracketing”, ”visibility”) and the absence of matching computational effects. Outside of the sequential deterministic realm, there are still a wealth of game semantics-based full abstraction results; but they no longer fit in a unified canvas. In particular, Ghica and Murawski's fully abstract model for shared state concurrency (IA) does not have a matching notion of pure parallel program-we say that parallelism and interference (i.e. state plus semaphores) are entangled. In this paper we construct a causal version of Ghica and Murawski's model, also fully abstract for IA. We provide compositional conditions parallel innocence and sequentiality, respectively banning interference and parallelism, and leading to four full abstraction results. To our knowledge, this is the first extension of Abramsky's semantic cube programme beyond the sequential deterministic world.


page 1

page 2

page 3

page 4


Game Semantics: Easy as Pi

Game semantics has proven to be a robust method to give compositional se...

On the Learnability of Programming Language Semantics

Game semantics is a powerful method of semantic analysis for programming...

Deterministic Parallel Fixpoint Computation

Abstract interpretation is a general framework for expressing static pro...

Better Late Than Never: A Fully Abstract Semantics for Classical Processes

We present Hypersequent Classical Processes (HCP), a revised interpretat...

Efficient Tree-Traversals: Reconciling Parallelism and Dense Data Representations

Recent work showed that compiling functional programs to use dense, seri...

Deterministic Consistency: A Programming Model for Shared Memory Parallelism

The difficulty of developing reliable parallel software is generating in...

Extended abstract: Type oriented programming for task based parallelism

Writing parallel codes is difficult and exhibits a fundamental trade-off...