Abstract
Game semantics is the art of interpreting types as games and programs as strategies interacting in space and time with their environment. In order to reflect the interactive behavior of programs, strategies are required to follow specific scheduling policies. Typically, in the case of a purely sequential programming language, the program (Player) and its environment (Opponent) will play one after the other, in a strictly alternating way. On the other hand, in the case of a concurrent language, Player and Opponent will be allowed to play several moves in a row, in a non-alternating way. In both cases, the scheduling policy is designed very carefully in order to ensure that the strategies synchronize properly and compose well when plugged together. A longstanding conceptual problem has been to understand when and why a given scheduling policy works and is compositional in that sense. In this paper, we exhibit a number of simple and fundamental combinatorial structures which ensure that a given scheduling policy encoded as synchronization template defines a symmetric monoidal closed (and in fact star-autonomous) bicategory of games, strategies and simulations. To that purpose, we choose to work at a very general level, and illustrate our method by constructing two template game models of linear logic with different flavors (alternating and non-alternating) using the same categorical combinatorics, performed in the category of small categories. As a whole, the paper may be seen as a hymn in praise of synchronization, building on the notion of synchronization algebra in process calculi and adapting it smoothly to programming language semantics, using a combination of ideas at the converging point of game semantics and of categorical algebra.
Highlights
In this paper, we want to describe in a simple, uniform and elegant way how proofs and programs of different nature, typically sequential or concurrent, synchronize themselves and interact in space and time
In order to describe these various scheduling policies in the same framework, we will combine ideas coming from concurrency theory and programming language theory following a trend pioneered by game semantics [Abramsky et al 2000; Hyland and Ong 2000]
We have just explained how to derive our first model of template games from the data of a synchronization template provided in this case by the internal category alt of sequential alternating games and strategies
Summary
We want to describe in a simple, uniform and elegant way how proofs and programs of different nature, typically sequential or concurrent, synchronize themselves and interact in space and time. In order to describe these various scheduling policies (sequential, concurrent) in the same framework, we will combine ideas coming from concurrency theory (synchronization algebras) and programming language theory (categorical semantics) following a trend pioneered by game semantics [Abramsky et al 2000; Hyland and Ong 2000]. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. A graph G is bipartite when there exists a map (1) to the complete graph K2 with two vertices
Published Version (Free)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have