Abstract
Progress in programming language design has often been achieved by making an abstraction a “first class object”, one that can be passed to and returned from procedures and entered in data structures. For example, the importance of functional parameters has long been recognized, though it is only more recently that actor semantics [2] and object oriented programming have demonstrated the power of first class functional objects. This paper illustrates, with a novel example, the power of first class control objects, called continuations.
First Class Continuations are described, and a means for their explicit access is defined by a meta-circular interpreter. We pose and solve the “Devils and Angels Problem” that utilizes the indefinite extent of continuations. Some ramifications of continuations with respect to language implementation and non-blind backtracking are presented.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Daniel P. Friedman, Christopher T. Haynes, Eugene Kohlbecker, and Mitchell Wand, “Scheme 84 Reference Manual: Preliminary Version”, November 1983.
Carl Hewitt, “Viewing control structures as patterns of passing messages”, Artif. Intel I. 8, 1977, pages 323–363. Also in Winston and Brown [ed], Artificial Intelligence: an MIT Perspective, MIT Press, 1979.
Peter J. Landin, “A correspondence between ALGOL 60 and Church’s Lambda Notation”, CACM 8, 2-3, February and March 1965, pages 89–101 and 158–165.
Jonathan A. Rees and Norman I. Adams IV, “T: A dialect of Lisp or, LAMBDA: The ultimate software tool”, Proceedings of the 1982 ACM Symposium on Lisp and Functional Programming, pages 114–122.
John C. Reynolds, “Definitional interpreters for higher order programming languages”, ACM Conference Proceedings 1972, pages 717–740.
Guy Lewis Steele Jr. and Gerald Jay Sussman, “The revised report on Scheme: a dialect of Lisp”, MIT Artificial Intelligence Memo 452, January 1978.
Guy Steele, “Common Lisp Reference Manual”, Carnegie-Mellon University Department of Computer Science Spice Project, November 1982. To appear, Digital Press, Bedford MA.
Joseph E. Stoy, Denotational Semantics: The Scott-Strachey Approach to Programming Language Semantics, MIT Press, Cambridge MA, 1977.
Christopher Strachey and Christopher P. Wadsworth, “Continuations—a Mathematical semantics for handling full jumps”, Technical Monograph PRG-11, Programming Research Group, University of Oxford (1974).
Gerald Jay Sussman and Drew Vincent McDermott, “From PLANNER to CONNIVER—A genetic approach”, Joint Computer Conference Proceedings 41, part n, AFIPS Press, NJ, pages 1171–1179.
Gerald Jay Sussman and Guy Lewis Steele Jr., “Scheme: an interpreter for extended lambda calculus”, MIT Artificial Intelligence Memo 349, December 1975.
Mitchell Wand, “Continuation-based multiprocessing”, Conf. Record of the 1980 Lisp Conference, August 1980, pages 19–28.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1984 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Friedman, D.P., Haynes, C.T., Kohlbecker, E. (1984). Programming with Continuations. In: Pepper, P. (eds) Program Transformation and Programming Environments. NATO ASI Series, vol 8. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-46490-4_23
Download citation
DOI: https://doi.org/10.1007/978-3-642-46490-4_23
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-46492-8
Online ISBN: 978-3-642-46490-4
eBook Packages: Springer Book Archive