Article

Higher-Order and Symbolic Computation

, Volume 15, Issue 2, pp 181-208

First online:

Linear Continuation-Passing

  • Josh BerdineAffiliated withDepartment of Computer Science, Queen Mary, University of London
  • , Peter O'HearnAffiliated withDepartment of Computer Science, Queen Mary, University of London
  • , Uday ReddyAffiliated withSchool of Computer Science, The University of Birmingham
  • , Hayo ThieleckeAffiliated withSchool of Computer Science, The University of Birmingham

Rent the article at a discount

Rent now

* Final gross prices may vary according to local VAT.

Get Access

Abstract

Continuations can be used to explain a wide variety of control behaviours, including calling/returning (procedures), raising/handling (exceptions), labelled jumping (goto statements), process switching (coroutines), and backtracking. However, continuations are often manipulated in a highly stylised way, and we show that all of these, bar backtracking, in fact use their continuations linearly; this is formalised by taking a target language for CPS transforms that has both intuitionistic and linear function types.

continuations continuation-passing style linear typing call/cc exceptions goto coroutines