Higher-Order and Symbolic Computation, 11(2)115-116

Introduction

Olivier Danvy and Carolyn L. Talcott

This issue is dedicated to the general topic of continuations. It grew out of the second ACM Workshop on Continuations (CW'97), which took place in Paris, France on January 14th, 1997 [1].

The notion of continuation is ubiquitous in many different areas of computer science,including logic, constructive mathematics, programming languages, and programming.

CW'97 aimed at providing a forum for discussion of new results and work in progress; workaimed at a better understanding of the nature of continuations; applications of continuations; and the relation of continuations to other areas of logic and computer science.

The articles in this special issue reflect this diversity. We start off with a seminal paper of Peter Landin, "A generalization of jumps and labels," which only existed in the form of a 1965 technical note, and for which Hayo Thielecke kindly agreed to write an introduction. This paper describes a real conceptual discovery, namely the idea to make control facilities first-class entities in a programming language, through the "J operator." Its exposition is typical of the simplicity, directness, clarity and honesty of Landin's writing that makes his articles such a pleasure to read.

Modelling continuations in the lambda-calculus yields what is commonly known as "Continuation-Passing Style" (CPS). In CPS, all calls are tail calls, and each function is equipped with an extra functional argument representing the rest of the computation--its continuation. To return a result to its caller, a function sends it to its continuation, i.e., it applies its continuation to this result. CPS, like continuations, has been variously discovered in many areas of computer science. John Reynolds reviewed these discoveries of continuations in our first special issue on continuations [4]. This first special issue also included Michael Fischer's discovery of CPS [2]. Traditionally, the CPS transformation operates on terms. Its type counterpart was first described by Albert Meyer and Mitchell Wand, who used it to prove the existence of a retraction between direct style and CPS [3]. Jakov Kucan generalizes their approach to the computational lambda-calculus in his article "Retraction approach to CPS transform."

To a man with a hammer, the world often looks like a nail. Ever since Milner introduced the pi-calculus, it has been part of the folklore in the continuation community that translations of the lambda-calculus into the pi-calculus look like CPS transformations. In his article "The pi-calculus in direct style," Gerard Boudol formalizes this folklore. He establishes a bridge between CPS and the pi-calculus, and presents the "blue calculus," a direct-style model for higher-order concurrency with the same expressive power as the pi-calculus but with a better notational convenience, similarly to the usual lambda-calculus in direct style compared to CPS.

Because they naturally represent the rest of a computation, continuations have often been used as a foundation to implement threads [5]. Scaling up such implementations, however, has revealed unexpected and rather subtle space leaks in the presence of exceptions. In their article "Safe-for-space threads in Standard ML," Edoardo Biagioni, Ken Cline, Peter Lee, Chris Okasaki, and Chris Stone investigate and solve this problem.

References

1. Olivier Danvy, editor. Proceedings of the Second ACM SIGPLAN Workshop on Continuations, Technical report BRICS-NS-96-13, University of Aarhus, Paris, France, January 1997.

2. Michael J. Fischer. Lambda-calculus schemata. LISP and Symbolic Computation, 6(3/4):259-288, December 1993. An earlier version appeared in an ACM Conference on Proving Assertions about Programs, SIGPLAN Notices, Vol. 7, No. 1, January 1972.

3. Albert R. Meyer and Mitchell Wand. Continuation semantics in typed lambda-calculi (summary). In Rohit Parikh, editor, Logics of Programs - Proceedings, number 193 in Lecture Notes in Computer Science, pages 219-224, Brooklyn, June 1985. Springer-Verlag.

4. John C. Reynolds. The discoveries of continuations. Lisp and Symbolic Computation, 6(3/4):233-247, December 1993.

5. Mitchell Wand. Continuation-based multiprocessing. In Ruth E.Davis and John R. Allen, editors, Conference Record of the 1980 LISP Conference, pages 19-28, Stanford, California, August 1980.
[picture of journal cover]

June 2003 - hosc@brics.dk