| J. C. Reynolds. The discoveries of continuations. LISP and Symbolic Computation, 6(3--4):233--247, 1993. |
.... program veri cation (such as temporal veri cation [9] The program transformation techniques provide mechanical tools for program optimization (such as cache optimization [12] call by name to call by value transformation [26] constant propagation [18] continuation passing style transformation [23], deforestation [29] nite di erencing [20] partial evaluation [1, 14] transition compression [16] software customization (such as security policy enforcement [10, 25] reverse engineering [31] slicing [30] and compilation [22] The objective of this paper is to introduce a general uniform ....
J. Reynolds. The discoveries of continuations. Lisp and Symbolic Computation, 6(3/4):233248, 1993.
....We begin with some historical context motivating the development of CPS transformations. The first section presents our personal perspective on the discovery of the concept of CPS transformations. For a different and more extensive historical perspective, we refer the reader to Reynolds s survey [79]. In the second section, we apply the original CPS transformation (due to Fischer [37] Morris [69] and Strachey and Wadsworth [101] to a pure call by value language. We also discuss Plotkin s analysis of the properties of this transformation [75] Finally, we include a series of CPS ....
Reynolds, J. C. The discoveries of continuations. Lisp and Symbolic Computation, 6, 3/4 (1993) 233--247.
....the wave front manually, and then resume the tactic as if the wave front had been introduced by the tactic itself. 3 Tactic Language In this section we explain our technique in an informal way. We describe the semantics of tactics in continuation passing style which is a standard technique (cf. [1, 8, 17, 15, 6, 5]) The idea is to describe the evaluation of an expression e with respect to (wrt. a continuation S which represents the future of the computation after e has been evaluated. A continuation S is a function of one argument. In order to evaluate e wrt. S, the continuation S is applied to the value ....
J. C. Reynolds. The discoveries of continuations. Lisp and Symbolic Computation, 6, 1993.
....using, this computational model. The SECD machine also can be modelled for lazy functional languages, see [57] Another way of implementing functional languages is based on the so called CPS translation. This was introduced in [96] and used in a compilers by [109] and [3] See also [93] and [97]. The first important typed functional language with an eager evaluation strategy is Standard ML, see [84] This language is based on the Curry variant of ##, the simply typed lambda calculus with implicit typing, see [8] Expressions are type free, but are only legal if a type can be derived for ....
, The discoveries of continuations, LISP and Symbolic Computation, vol. 6 (1993), no. 3/4, pp. 233--247.
....direct way of supplying to the function its continuation argument. Or rather, of supplying it with one that overrides the default natural one. But this reveals the sense in which such continuations were no more, and 1 3 no less, the meaning of the rest of the program (to borrow Reynolds [11] unattributed quotation) than was a dump in its strict lambda, unreified, unnamed occurrence. A dump was in that sense a continuation whether or not it was anonymous. The D of an SECD state is a stack of SEC triples. The oldest D is empty. In each SEC, the S and the C are so balanced that it ....
J. C. Reynolds. The discoveries of continuations. LISP and Symbolic Computation, 6(3/4):233--247, December 1993.
....while continuations with their indefinite extent need to be heap allocated in general. Although illuminating, this does not constitute a firm distinction: one could conceive a (very inefficient) implementation of continuations with a stack that is never popped (compare [22] in light of [19]) Hence we need a more absolute criterion for comparing expressiveness. Two such criteria are pertinent here: Turing completeness, and the ability to break contextual equivalences [4] Lillibridge [11, 12] compares continuations and exceptions in terms of Turing completeness. First, Lillibridge ....
J. C. Reynolds. The discoveries of continuations. Lisp and Symbolic Computation, 6(3/4):233--247, November 1993.
....on a calculus with a let construct or with environments include Ariola et al. AFM 95] Launchbury [Lau93] Purushothaman and Seaman [PS92] Yoshida [Yos93] The term icontinuationj is due to Strachey and Wadsworth [SW74] who used them to give semantics to control jumps. See Reynold [Rey93] for a history of the discovery of continuations and CPS transforms. For continuations in denotational semantics, see Gordon [Gor79] Schmidt [Sch86] or Tennent [Ten91] For continuations as a programming technique, see [FWT92] For the use of CPS transform in compilers, see Appel [App92] where ....
J. C. Reynolds. The discoveries of continuations. Lisp and Symbolic Computation, 6:233248, 1993.
....We begin with some historical context motivating the development of CPS transformations. The first section presents our personal perspective on the discovery of the concept of CPS transformations. For a different and more extensive historical perspective, we refer the reader to Reynolds s survey [79]. In the second section, we apply the original CPS transformation (due to Fischer [37] Morris [69] and Strachey and Wadsworth [101] to a pure call by value language. We also discuss Plotkin s analysis of the properties of this transformation [75] Finally, we include a series of CPS ....
Reynolds, J. C. The discoveries of continuations. Lisp and Symbolic Computation, 6, 3/4 (1993) 233--247.
....also can be modelled for lazy functional languages, see Henderson [1980] Another way of implementing functional languages is based on the so called CPS translation. This was introduced in Reynolds [1972] and used in a compilers by Steele Jr. 1978] and Appel [1992] See also Plotkin [1975] and Reynolds [1993]. The first important typed functional language with an eager evaluation strategy is Standard ML, see Milner [1978] This language is based on the Curry variant of , the simply typed lambda calculus with implicit typing, see B[92] Expressions are type free, but are only legal if a type can be ....
Reynolds, John C. [1993] The discoveries of continuations, LISP and Symbolic Computation 6(3/4), 233-- 247.
....method of stack compression that would delete unnecessary bindings. Research on continuation passing style transforms has witnessed a great spurt recently. A large part of this research centers on studies of control [34, 35, 40, 41, 44] For a history of continuations, the reader is referred to [119]. Several CPS transforms exist the most well known ones are due to Plotkin [109] and Reynolds [113, 114] A pleasing feature of CPS ed programs is that they are evaluation order independent and give identical results for both call by value and call by name [113] Continuations have also been ....
Reynolds, J. C. The discoveries of continuations. Lisp and Symbolic Computation 6, 4 (1993), 233--247.
....while continuations with their indefinite extent need to be heap allocated in general. Although illuminating, this does not constitute a firm distinction: one could conceive a (very inefficient) implementation of continuations with a stack that is never popped (compare [23] in light of [20]) Hence we need a more absolute criterion for comparing expressiveness. Two such criteria are pertinent here: Turing completeness, and the ability to break contextual equivalences [5] Lillibridge [12, 13] compares continuations and exceptions in terms of Turing completeness. His argument ....
J. C. Reynolds. The discoveries of continuations. Lisp and Symbolic Computation, 6(3/4):233--247, November 1993.
....calling mechanisms could be explained by two different translations into continuation passing style. At the time he wrote, the call by value translation was widely appreciated, but the call by name translation was less well known. The call by value translation had been reinvented several times [Rey93], while the call by name translation is credited by Plotkin to a private communication from Reynolds. While we hesitate to compare our work to Plotkin s, our goal here is similar. We demonstrate how the two different calling mechanisms can be explained by two different translations into linear ....
J. C. Reynolds, The discoveries of continuations. Lisp and Symbolic Computation, 6(3/4):233--248, November 1993.
....of Delta reduction, which will cause the failure of syntactic techniques to prove strong normalization for CPTSs see Section 6. ffl Section 5: Continuation Passing Style Translation The Continuation Passing Style (CPS) translation is a standard compilation technique for functional languages [2,22,83]. CPS translations were studied among others by Plotkin [76] who defined a CPS translation from typefree terms to type free terms, and by Felleisen et al. 29] who extended Plotkin s translation from type free C terms to type free terms. Generalizing an earlier observation by Meyer and Wand ....
J.C. Reynolds. The discoveries of continuations. LISP and Symbolic Computation, 6:233--248, 1993.
....the obvious choices of P , OE( M) 62 WN fi . Moreover, OE ffi fails to map typable terms to typable terms (see Section 7) Fortunately another technique is available. It is well known [10, 60] that one can simulate reductions like by means of a continuation passing style (CPS) translation [58, 51]. More precisely, there is a CPS translation : I I and a compacting CPS translation OE : I I such that (M) fi OE(M) and OE simulates . Since a pair [M; N ] in the translated world has no notion of reduction associated, it is equivalent to yMN where y is some fresh ....
....By the Church Rosser property, OE( M) 2 WN fi . Then, by Proposition 5.2, M 2 SN fi . ut 5.2. Simulation by CPS translation We now show how to simulate by means of CPS translation. The restrictions to K of the following two maps were first studied systematically by Plotkin [51] see also [58]. 5.4. Definition. Let y be a variable, not occurring in any other term. i) Define ffl : K K by: x = k:x k x:P = k:k x:P P Q = k:P m:m Q k [P; Q] k:y (P k) Q (ii) Define ffl : ffl : K Theta K K by: x : K = x K (x:P ) K = K x:P (P Q) K = P : m:m QK) P; Q] K = y (P ....
J.C. Reynolds. The discoveries of continuations. LISP and Symbolic Computation, 6:233--248, 1993.
.... calculus [25, 47, 58] becomes Kolmogorov s embedding of classical logic into minimal logic if we view terms as proofs 1 . In this section, we develop similar results for C 2 . The CPS translation 1 See also [21, 22, 48] more references on control operators and CPS translations appear in [70, 65] and surveys of logical embeddings are presented in [41, 77] 2 Using the results of [11] it is possible to extend the translation to all the systems of the cube and to a much larger class of specifications. We limit ourselves to C for space reasons. Chxi = ae k:x k x if x 2 V ....
J.C. Reynolds. The discoveries of continuations. LISP and Symbolic Computation, 6:233--248, 1993.
....as an abstract type. Historically, continuations are a direct predecessor of monads. Continuations, like monads, arose in denotational semantics, originally as a way to model flow of control. The canonical formulation is due to Plotkin [51] and an engaging history has been penned by Reynolds [52]. Review of interaction by continuations. In the continuation model, each operation takes an additional argument, itself called the continuation, that denotes the the entire remainder of the computation. At first sight this appears to be a remarkably unmodular notion every action incorporates ....
J. C. Reynolds, The Discoveries of Continuations. Lisp and Symbolic Computation, 6(3/4):233--247, 1993.
....expression is evaluated. The continuation is a function mapping the value of the expression to the result of the program; it represents the remainder of the computation, which is waiting for the value of the expression. The translation is essentially a standard continuation passing semantics; see [9, 22, 23] for detailed expositions. In what follows, when we have a term (M 1 : Mn ) we will say that M 1 is in head position, or function position, and that Mn is in continuation position. E [ i] ae: ae i) E [ n] ae: in int n ) E [ rec i 1(i2 ) e) ae: in clo (fix (p:v:E [ e] ae[ in clo ....
J. C. Reynolds. The discoveries of continuations. Lisp and Symbolic Computation, 6(3/4):233--248, 1993.
....by two different translations into continuation passing style. At the time Plotkin wrote, the call by value translation was widely appreciated, but the call by name translation was less well known. In particular, the call by value translation was rediscovered several times (as related by Reynolds [27]) while the call byname translation appears to have been known only to Plotkin and Reynolds (the former credits it to the latter) While we hesitate to compare our work to Plotkin s, our goal here is somewhat similar. We demonstrate how the two different calling mechanisms can Presented at ....
J. C. Reynolds, The discoveries of continuations. Lisp and Symbolic Computation, 6(3/4):233--248, November 1993.
....a structured form in [WO75] 5.3 Continuations The theory of continuations was first discovered by A. van Wijngaarden and independently rediscovered and developed further by F.L. Morris and C.P. Wadsworth. A good overview on the origins of continuations and related concepts is given by Reynolds [Rey93] Definition 5.1 (Continuations) The continuation at a given point p in a program is a function which, when applied to a certain state of memory i, results in a state of memory o which is the same state as is reached when the execution of the program begins at point p using initial state i. ....
J. C. Reynolds. The discoveries of continuations. Lisp and Symbolic Computation, 6(3/4):233--247, November 1993.
No context found.
J. C. Reynolds. The discoveries of continuations. LISP and Symbolic Computation, 6(3--4):233--247, 1993.
No context found.
J. C. Reynolds, The discoveries of continuations. Lisp and Symbolic Computation, 6(3/4):233--248, November 1993.
No context found.
J. C. Reynolds, The discoveries of continuations, Lisp and Symbolic Computation 6 (3/4) (1993) 233248.
No context found.
Reynolds, J. C. The discoveries of continuations. Lisp and Symbolic Computation 6, 3/4 (1993), 233--247.
No context found.
Reynolds, J. C. The discoveries of continuations. Lisp and Symbolic Computation 6, 3/4 (1993), 233--247.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC