Combining Control Effects and Their Models: Game Semantics for a hierarchy of static, dynamic and delimited control effects.

Research output: Contribution to journalArticle

1 Citation (Scopus)

Abstract

Computational effects which provide access to the flow of control (such as first-class continuations, exceptions and delimited continuations) are important features of higher-order programming languages. There are fundamental differences between them in terms of operational behaviour, expressiveness and implementation, so that understanding how they combine and relate to each other is a challenging objective, with a key role for semantics in making this precise.

This paper develops operational and denotational semantics for a hierarchy of programming languages which include combinations of locally declared control prompts to which a program can escape, with first-class continuations which may either capture their enclosing prompts, or be delimited by them. We describe two different hierarchies of models, both based on categories of games and strategies with a computational monad, but obtained using different methodologies. By relaxing combinations of behavioural constraints on strategies with control flow represented by annotation with control pointers we are able to give direct and explicit characterizations of control operators and their effects, including examples characterizing their macro-expressiveness. By constructing a parallel hierarchy of models by applying sequences of monad transformers, and relating these to the direct interpretation of control effects, we obtain games interpretations of higher-level abstractions such as continuations and exceptions, which can be used as the basis for equational reasoning about programs.
Original languageEnglish
Pages (from-to)470-500
Number of pages31
JournalAnnals of Pure and Applied Logic
Volume168
Issue number2
Early online date13 Oct 2016
DOIs
Publication statusPublished - 28 Feb 2017

Projects

  • Cite this