| Implementation strategies for continuations |
| Full text |
Pdf
(834 KB)
|
| Source
|
Conference on LISP and Functional Programming
archive
Proceedings of the 1988 ACM conference on LISP and functional programming
table of contents
Snowbird, Utah, United States
Pages: 124 - 131
Year of Publication: 1988
ISBN:0-89791-273-X
|
|
Authors
|
|
Will Clinger
|
Semantic Microsystems, Inc, 4470 SW Hall, Suite 340, Beaverton, Oregon
|
|
Anne Hartheimer
|
Semantic Microsystems, Inc, 4470 SW Hall, Suite 340, Beaverton, Oregon
|
|
Eric Ost
|
Metaphor Corp, Bloomington, Indiana
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 5, Downloads (12 Months): 35, Citation Count: 23
|
|
|
ABSTRACT
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. Several implementation strategies have been described in the literature. Determining which is best requires knowledge of the kinds of programs that will commonly be run.
Danvy, for example, has conjectured that continuation captures occur in clusters. That is, the same continuation, once captured, is likely to be captured again. As evidence, Danvy cited the use of continuations in a research setting. We report that Danvy's conjecture is somewhat true in the commercial setting of MacScheme+Toolsmith™, which provides tools for developing Macintosh user interfaces in Scheme. These include an interrupt-driven event system and multitasking, both implemented by liberal use of continuations.
We describe several implementation strategies for continuations and compare four of them using benchmarks. We conclude that the most popular strategy may have a slight edge when continuations are not used at all, but that other strategies perform better when continuations are used and Danvy's conjecture holds.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
Bartley 86
|
|
 |
Caudill 86
|
Patrick J. Caudill , Allen Wirfs-Brock, A third generation Smalltalk-80 implementation, Conference proceedings on Object-oriented programming systems, languages and applications, p.119-130, September 29-October 02, 1986, Portland, Oregon, United States
|
 |
Danvy 87
|
|
 |
Deutsch 84
|
|
| |
Gabriel 85
|
|
| |
Goldberg 83
|
|
 |
Haynes 84
|
|
| |
Holloway 80
|
Jack Holloway, Guy L Steele, Gerald Jay Sussman, and Alan Bell, "The SCHEME-79 Chip", MIT AI Laboratory, AI Memo 559, january 1980.
|
 |
Kranz 86
|
David Kranz , Norman Adams , Richard Kelsey , Jonathan Rees , Paul Hudak , James Philbin, ORBIT: an optimizing compiler for scheme, Proceedings of the 1986 SIGPLAN symposium on Compiler construction, p.219-233, June 25-27, 1986, Palo Alto, California, United States
|
| |
Kranz 88
|
David Andrew Kranz, ORBIT: An Optimizing Compiler for Scheme, PhD thesis, Yale University, May 1988.
|
 |
Miranda 87
|
|
 |
Moss 87
|
|
 |
Rees 86
|
|
 |
Samples 86
|
A. Dain Samples , David Ungar , Paul Hilfinger, SOAR: Smalltalk without bytecodes, Conference proceedings on Object-oriented programming systems, languages and applications, p.107-118, September 29-October 02, 1986, Portland, Oregon, United States
|
| |
Semantic 87
|
Semantic Microsystems, MacScheme~Toolsmith, August 1987.
|
 |
Suzuki 84
|
|
| |
Ungar 87
|
|
| |
Wirfs-Brock 88
|
Allen Wirfs-Brock, personal communication, April 1988. Tektronix Smalltalk is described in {Caudill 86, which was not detailed enough for us to realize that Tektronix Smalltalk uses the stack/heap strategy rather than the stack strategy.
|
CITED BY 23
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
H. Abelson , R. K. Dybvig , C. T. Haynes , G. J. Rozas , N. I. Adams, IV , D. P. Friedman , E. Kohlbecker , G. L. Steele, Jr. , D. H. Bartley , R. Halstead , D. Oxley , G. J. Sussman , G. Brooks , C. Hanson , K. M. Pitman , M. Wand , William Clinger , Jonathan Rees, Revised report on the algorithmic language scheme, ACM SIGPLAN Lisp Pointers, v.IV n.3, p.1-55, July, 1991
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|