Higher-Order and Symbolic Computation

, Volume 12, Issue 1, pp 7-45

First online:

Open Access This content is freely available online to anyone, anywhere at any time.

Implementation Strategies for First-Class Continuations

  • William D. ClingerAffiliated withCollege of Computer Science, Northeastern University
  • , Anne H. Hartheimer
  • , Eric M. Ost


Scheme and Smalltalk continuations may have unlimited extent. This means that a purely stack-based implementation of continuations, as suffices for most languages, is inadequate. We review several implementation strategies for continuations and compare their performance using instruction counts for the normal case and continuation-intensive synthetic benchmarks for other scenarios, including coroutines and multitasking. All of the strategies constrain a compiler in some way, resulting in indirect costs that are hard to measure directly. We use related measurements on a set of benchmarks to calculate upper bounds for these indirect costs.

continuations stacks heap allocation coroutines multitasking Scheme Smalltalk