Category Theory and Computer Science

Volume 389 of the series Lecture Notes in Computer Science pp 224-249


Declarative continuations: An investigation of duality in programming language semantics

  • Andrzej FilinskiAffiliated withDIKU — Computer Science Department, University of Copenhagen

* Final gross prices may vary according to local VAT.

Get Access


This paper presents a formalism for including first-class continuations in a programming language as a declarative concept, rather than an imperative one. A symmetric extension of the typed λ-calculus is introduced, where values and continuations play dual roles, permitting mirror-image syntax for dual categorical concepts like products and coproducts. An implementable semantic description and a static type system for this calculus are presented. We also give a categorical description of the language, by presenting a correspondence with a system of combinatory logic, similar to a cartesian closed category, but with a completely symmetrical set of axioms.