Journal of the ACM (JACM)
Block structure (Extended Abstract): Retention or deletion?
STOC '71 Proceedings of the third annual ACM symposium on Theory of computing
Pushdown store machines and real-time computation
STOC '69 Proceedings of the first annual ACM symposium on Theory of computing
PAL—a language designed for teaching programming linguistics
ACM '68 Proceedings of the 1968 23rd ACM national conference
Algol-60 Implementation
LISP 1.5 Programmer's Manual
The Calculi of Lambda Conversion. (AM-6) (Annals of Mathematics Studies)
The Calculi of Lambda Conversion. (AM-6) (Annals of Mathematics Studies)
ACM SIGPLAN Notices
Continuations may be unreasonable
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
A formulae-as-type notion of control
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Structured programming with limited private types in Ada: nesting if for the soaring eagles
ACM SIGAda Ada Letters
CONS should not CONS its arguments, or, a lazy alloc is a smart alloc
ACM SIGPLAN Notices
Reasoning about programs in continuation-passing style.
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Back to direct style II: first-class continuations
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
ACM Letters on Programming Languages and Systems (LOPLAS)
The essence of compiling with continuations
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Separating stages in the continuation-passing style transformation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Sound rules for parallel evaluation of a functional language callcc
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
A generic account of continuation-passing styles
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
CONS should not CONS its arguments, part II: Cheney on the M.T.A.
ACM SIGPLAN Notices
From system F to typed assembly language
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A systematic study of functional language implementations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proper tail recursion and space efficiency
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Expansion-passing style: beyond conventional macros
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Continuation-Based Program Transformation Strategies
Journal of the ACM (JACM)
A Syntactic Theory of Message Passing
Journal of the ACM (JACM)
Typed memory management via static capabilities
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '75 Proceedings of the 2nd ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Proceedings of the 24th International Conference on Software Engineering
Definitional Interpreters for Higher-Order Programming Languages
Higher-Order and Symbolic Computation
Scheme: A Interpreter for Extended Lambda Calculus
Higher-Order and Symbolic Computation
Higher-Order and Symbolic Computation
Compiler Construction in Higher Order Logic Programming
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
On the time required for retention
HLLCA '73 Proceedings of the ACM-IEEE symposium on High-level-language computer architecture
Definitional interpreters for higher-order programming languages
ACM '72 Proceedings of the ACM annual conference - Volume 2
On the time required for retention
HLLCA '73 Proceedings of a symposium on High-level-language computer architecture
From λ to π; or, Rediscovering continuations
Mathematical Structures in Computer Science
Classical logic, continuation semantics and abstract machines
Journal of Functional Programming
On the call-by-value CPS transform and its semantics
Information and Computation
The essence of compiling with continuations
ACM SIGPLAN Notices - Best of PLDI 1979-1999
EDUCATIONAL PEARL: Automata via macros
Journal of Functional Programming
Implementation and use of the PLT scheme Web server
Higher-Order and Symbolic Computation
An approach to call-by-name delimited continuations
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Does LISP differ from ALGOL essentially?
ACM Lisp Bulletin
Proofs, tests and continuation passing style
ACM Transactions on Computational Logic (TOCL)
Automatically RESTful web applications: marking modular serializable continuations
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
On the Observational Theory of the CPS-calculus
Electronic Notes in Theoretical Computer Science (ENTCS)
Higher-Order and Symbolic Computation
A type-theoretic foundation of delimited continuations
Higher-Order and Symbolic Computation
Call-by-name and call-by-value in normal modal logic
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
The two-state solution: native and serializable continuations accord
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
The calculus of responsibility and commitment
Ludics, dialogue and interaction
Negative translations and duality: toward a unified approach
Ludics, dialogue and interaction
Compiling lambda-expressions using continuations and factorizations
Computer Languages
Hi-index | 0.00 |
A lambda calculus schema is an expression of the lambda calculus augmented by uninterpreted constant and function symbols and thus is an abstraction of programming languages such as LISP which permit functions to be passed to or returned from other functions. We then consider two natural implementation strategies: the retention strategy in which all variable bindings are retained until no longer needed (implying the use of some sort of garbage collected store) and the deletion strategy, modelled after the usual stack implementation of ALGOL-60, in which variable bindings are destroyed when control leaves the procedure (or block) in which they were created. Berry shows that the deletion strategy implementation is not “correct” for a wide class of languages in the sense that it is not equivalent to natural extensions of the copy rule of ALGOL to such languages, whereas the retention strategy is correct in that sense. We show, however, that no real power is lost in restricting oneself to a deletion strategy implementation, for any program can be translated into an equivalent one which will work correctly under such an implementation. The proof makes no use of the particular primitive functions and data of the language and hence is true of the corresponding schemata under all interpretations.