A calculus of coroutines

  • Authors:
  • J. Laird

  • Affiliations:
  • Department of Informatics, University of Sussex, UK

  • Venue:
  • Theoretical Computer Science - Automata, languages and programming: Logic and semantics (ICALP-B 2004)
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe a simple but expressive calculus of sequential processes, represented as coroutines. We show that this calculus can be used to express a variety of programming language features including procedure calls, labelled jumps, integer references and stacks. We describe the operational properties of the calculus using reduction rules and equational axioms.We describe a notion of categorical model for our calculus, and give a simple example of such a model based on a category of games and strategies. We prove full abstraction results showing that equivalence in the categorical model corresponds to observational equivalence in the calculus, and also to equivalence of evaluation trees, which are infinitary normal forms for the calculus.We show that our categorical model can be used to interpret the untyped λ-calculus and use this fact to extract a sound translation of the latter into our calculus of coroutines.