Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Performance and evaluation of LISP systems
Performance and evaluation of LISP systems
ORBIT: an optimizing compiler for scheme
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Revised report on the algorithmic language scheme
ACM SIGPLAN Notices
SOAR: Smalltalk without bytecodes
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
A third generation Smalltalk-80 implementation
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Managing stack frames in Smalltalk
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Memory allocation and higher-order functions
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
The design and evaluation of a high performance Smalltalk system
The design and evaluation of a high performance Smalltalk system
BrouHaHa- A portable Smalltalk interpreter
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Safety consideration for storage allocation optimizations
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Implementation strategies for continuations
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Efficient stack allocation for tail-recursive languages
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Representing control in the presence of first-class continuations
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
MacScheme: manual and software
MacScheme: manual and software
CML: A higher concurrent language
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compiling with continuations
Space-efficient closure representations
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Lambda, the ultimate label or a simple optimizing compiler for Scheme
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
The SPARC architecture manual (version 9)
The SPARC architecture manual (version 9)
Lisp and Symbolic Computation - Special issue on continuations—part I
Register allocation using lazy saves, eager restores, and greedy shuffling
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Representing control in the presence of one-shot continuations
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Generational garbage collection and the radioactive decay model
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Modern compiler implementation in Java
Modern compiler implementation in Java
Generational stack collection and profile-driven pretenuring
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Proper tail recursion and space efficiency
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
The implementation of PC Scheme
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
A model and stack implementation of multiple environments
Communications of the ACM
IEEE Std 1178-1990, IEEE Standard for the Scheme Programming Language
IEEE Std 1178-1990, IEEE Standard for the Scheme Programming Language
Revised Report on the Algorithmic Language Scheme
Higher-Order and Symbolic Computation
An Efficient Implementation for Coroutines
IWMM '92 Proceedings of the International Workshop on Memory Management
Creating efficient systems for object-oriented languages
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Efficient implementation of the smalltalk-80 system
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Engines build process abstractions
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
An efficient environment allocation scheme in an interpreter for a lexically-scoped LISP
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Block structure (Extended Abstract): Retention or deletion?
STOC '71 Proceedings of the third annual ACM symposium on Theory of computing
Macaroni is better than spaghetti
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
Orbit: an optimizing compiler for scheme
Orbit: an optimizing compiler for scheme
Analysis-based program transformations
ACM SIGSOFT Software Engineering Notes
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Final shift for call/cc:: direct implementation of shift and reset
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
An Operational Investigation of the CPS Hierarchy
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Formalizing Implementation Strategies for First-Class Continuations
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Taming the IXP network processor
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Higher-Order and Symbolic Computation
Specializing continuations a model for dynamic join points
Proceedings of the 6th workshop on Foundations of aspect-oriented languages
A syntactic correspondence between context-sensitive calculi and abstract machines
Theoretical Computer Science
Defunctionalized interpreters for programming languages
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Direct implementation of shift and reset in the MinCaml compiler
Proceedings of the 2009 ACM SIGPLAN workshop on ML
Delimited continuations in operating systems
CONTEXT'07 Proceedings of the 6th international and interdisciplinary conference on Modeling and using context
The two-state solution: native and serializable continuations accord
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Managing continuations for proper tail recursion
Proceedings of the 2010 international conference on Lisp
Ordering multiple continuations on the stack
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Bounded-latency regional garbage collection
Proceedings of the 7th symposium on Dynamic languages
Delimited control in OCaml, abstractly and concretely: system description
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Delimited control in OCaml, abstractly and concretely
Theoretical Computer Science
Constructing customized interpreters from reusable evaluators using GAME
SC'12 Proceedings of the 11th international conference on Software Composition
Hi-index | 0.00 |
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 andcompare their performance using instruction counts for the normalcase and continuation-intensive synthetic benchmarks for other scenarios,including coroutines and multitasking.All of the strategies constrain a compiler in some way, resultingin indirect costs that are hard to measure directly.We use related measurements on a set of benchmarks to calculateupper bounds for these indirect costs.