Continuations and concurrency
- 1 February 1990
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 25 (3) , 128-136
- https://doi.org/10.1145/99163.99178
Abstract
Continuations have proven to be useful for implementing a variety of control structures, including exception handling facilities and breadth-first searching algorithms. However, traditional continuations are not useful in the presence of concurrency, because the notion of the rest of the computation represented by a continuation does not in general make sense. This paper presents a new type of continuation, called a process continuation, that may be used to control tree-structured concurrency. Just as a traditional continuation represents the rest of a computation from a given point in the computation, a process continuation represents the rest of a subcomputation, or process, from a given point in the subcomputation. Process continuations allow nonlocal exits to arbitrary points in the process tree and allow the capture of a subtree of a computation as a composable continuation for later use. Even in the absence of multiple processes, the precise control achievable with process continuations makes them more useful than traditional continuations.Keywords
This publication has 11 references indexed in Scilit:
- Control delimiters and their hierarchiesHigher-Order and Symbolic Computation, 1990
- Engines from continuationsComputer Languages, 1989
- The theory and practice of first-class promptsPublished by Association for Computing Machinery (ACM) ,1988
- Stores and partial continuations as first-class objects in a language and its environmentPublished by Association for Computing Machinery (ACM) ,1988
- Implementation strategies for continuationsPublished by Association for Computing Machinery (ACM) ,1988
- Abstract continuations: a mathematical semantics for handling full jumpsPublished by Association for Computing Machinery (ACM) ,1988
- Obtaining coroutines with continuationsComputer Languages, 1986
- Revised 3 report on the algorithmic language schemeACM SIGPLAN Notices, 1986
- MULTILISP: a language for concurrent symbolic computationACM Transactions on Programming Languages and Systems, 1985
- Revised report on the algorithmic language ALGOL 60Communications of the ACM, 1963