| G. L. Steele, Jr. Data representation in PDP-10 MACLISP. Technical Report AI Memo 420, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, Sept. 1997. |
....Keywords Continuations, control e#ects, type and e#ect systems, polymorphism 1. INTRODUCTION The transformation of a program into continuation passing style (CPS) makes all control transfers, such as jumps or procedure calls, explicit. CPS can be used as an intermediate language in compiling [2, 26]. Moreover, CPS makes it easy to accommodate powerful control operators in the Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that ....
Guy Steele. Rabbit: A compiler for Scheme. Technical Report AI TR 474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, May 1978.
....a set of reduction rules for shift and reset which is sound and complete with respect to CPS translation. It is already a di#cult problem for the case of first class continuations. We should at least consider optimized (administrative redexfree) CPS translation in the sense of Plotkin [22] Steele [28], Danvy Filinski[6] Sabry Felleisen [25] and Danvy Nielsen [8] Finally, we wish to obtain a deeper, more semantics oriented understanding of the delimited continuations and our completeness proof. The second author has started to study this direction [16] by replacing the target calculus by ....
G. L. Steele Jr. RABBIT: A Compiler for SCHEME. Technical Report AITR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, 1978.
....transformation is a syntax constructor, all occurrences of and # are dynamic. And in fact, Gomard s binding time analysis does classify all occurrences to be dynamic. But CPS terms resulting from this transformation contain redundant administrative beta redexes, which have to be post reduced [15]. These beta redexes can be avoided by inserting eta redexes in the CPS transformation, allowing some beta redexes in the transformation to become static. The second part of Figure 2 shows the revised transformation containing three extra eta redexes: one for the CPS transformation of ....
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
....Continuations, control effects, type and effect systems, polymorphism 1. INTRODUCTION The transformation of a program into continuation pass ing style (CPS) makes all control transfers, such as jumps or procedure calls, explicit. CPS can be used as an interme diate language in compiling [2, 26]. Moreover, CPS makes it easy to accommodate powerful control operators in the Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that ....
Guy Steele. Rabbit: A compiler for Scheme. Technical Report AI TR 474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, May 1978.
.... s meta circular definition of Lisp and was actively pursued with the blossoming of artificial intelligence languages (Planner, Conniver, Scheme, Intrigue) a direction that progressively departed from artificial intelligence to stand on its own with Steele and Sussman s Art of the Interpreter [25]. But interpreters have a runtime price and this triggered a direction of research activity on how to transform interpreters to compilers [7] paralleling research on denotational semantics directed compiler generation [14] These two research areas today appear to coincide, both in theory and in ....
Guy L. Steele Jr. and Gerald J. Sussman. The art of the interpreter or, the modularity complex (parts zero, one, and two). AI Memo 453, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
....to the context. The evaluation of an expression completes by calling the continuation with the computed value. The notion of continuations has emerged in several forms in the 1960 s and early 1970 s, see for instance Reynolds s survey [102] Since then, continuations have been used in compilation [3, 6, 44, 113], logic [48, 83] and semantics [43, 101, 109] Turning a term into continuation passing style amounts to making explicit the continuations inside the term. Such transformation enables a simple implementation of control constructs present in modern programming languages as Scheme [73] or ML [7] ....
....are also routine in staging transformations [70] and in the formal specification of programming languages for semantics directed compiling [88, Section 8. 2] Since one of the most e#ective binding time improvements is the transformation of source programs into continuation passing style (CPS) [20, 113], people have wondered whether CPS may help program analysis in general. Nielson s early work on data flow analysis [87] suggests so, since it shows that for a nondistributive analysis, a continuation semantics yields more precise results than a direct semantics. The CPS transformation is ....
[Article contains additional citation context not shown here]
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
....We have pointed out how to avoid generating these chains of jumps. In SSA terms [3, 10, 15] our translation naturally yields fewer merge points without duplicating contexts. It also generates fewer basic blocks and thus makes it faster to compute an SSA form. Turning to the CPS transformation [5, 13], we observe that the issue of chains of jumps arises there in the form of spurious # redexes such as #v.k v, where k 14 denotes a continuation. These # redexes appear in the translation of tail calls and for nested conditional expressions, just like here for while loops and nested conditional ....
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
....to the context. The evaluation of an expression completes by calling the continuation with the computed value. The notion of continuations has emerged in several forms in the 1960 s and early 1970 s, see for instance Reynolds s survey [102] Since then, continuations have been used in compilation [3, 6, 44, 113], logic [48, 83] and semantics [43, 101, 109] Turning a term into continuation passing style amounts to making explicit the continuations inside the term. Such transformation enables a simple implementation of control constructs present in modern programming languages as Scheme [73] or ML [7] ....
....are also routine in staging transformations [70] and in the formal specification of programming languages for semantics directed compiling [88, Section 8. 2] Since one of the most e#ective binding time improvements is the transformation of source programs into continuation passing style (CPS) [20, 113], people have wondered whether CPS may help program analysis in general. Nielson s early work on data flow analysis [87] suggests so, since it shows that for a nondistributive analysis, a continuation semantics yields more precise results than a direct semantics. The CPS transformation is ....
[Article contains additional citation context not shown here]
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
....are also routine in staging transformations [17] and in the formal specification of programming languages for semantics directed compiling [22, Section 8. 2] Since one of the most e#ective binding time improvements is the transformation of source programs into continuationpassing style (CPS) [3, 32], people have wondered whether CPS may help program analysis in general. Nielson s early work on data flow analysis [21] suggests so, since it shows that for a non distributive analysis, a continuation semantics yields more precise results than a direct semantics. The CPS transformation is ....
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
....of LISP, have used, or are still 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 ....
Guy L. Steele Jr., Rabbit: A compiler for Scheme, Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
....(stackability) i.e. installing an exception handler and handling an exception respectively amounts to push and pop. Furthermore we show that the ordering properties investigated in [DDP99,DP95] for results of the conventional continuation passing style (CPS) transformation [DF92,Plo75,Ste78] stackability of both continuation identifiers and continuation parameters also hold for results of an extended CPS transform[KYD98,App97] which replaces exception raise and handle expressions by function (continuation) calls and constructions in higher order programs. We prove the two ....
....7 [t=x]e (v: e)t 7 [t=v]e (k: e)pair(fl 0 ; fl 1 ) 7 [pair(fl 0 ; fl 1 ) k]e nrml pair(fl 0 ; fl 1 ) 7 fl 0 hnd pair(fl 0 ; fl 1 ) 7 fl 1 3. 3 Continuation passing style (CPS) Transformation We use an extension of the conventional continuation passing style (CPS) transformation [DF92,Plo75,Ste78] to get from a DS term to a CPS term. We remove the raise and handle expressions by passing two continuations to each expression: one for the normal course of execution, and a second one (the handler continuation) for exceptions. Only raise and handle expressions use the handler continuation. A ....
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
....89 42 33 69. Fax: 45) 89 42 32 55. Home pages: http: www.brics.dk fdanvy,karolineg. 1 Introduction The CPS transformation stands at an intersection between several areas of Computer Science: on terms, it is used to encode evaluation orders [10, 14, 17, 18] e.g. for compiling programs [1, 15, 20]; on types, seen as propositions, it corresponds to a double negation translation, i.e. as a mapping from Classical Logic into Intuitionistic Logic [13, 16, 23] We are interested in the effect of iterating the CPS transformation. In the absence of control operators [2, 4, 9] programming ....
....pure calculus. Following Reynolds [18] we distinguish between trivial terms, whose reduction always terminate, and serious terms, whose reduction may diverge. Figures 2 and 3 display Plotkin s CPS transformation and the syntactic characterization of its output, after administrative reductions [5, 17, 19, 20]. Both BNF s were used in earlier work on the direct style transformation, the inverse of the CPS transformation [3, 8] 3 Idempotence: No Let us CPS transform the identity function x:x in an empty context, for simplicity. The result reads as follows. x:k 1 :k 1 x CPS transforming this result ....
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
....programs: direct style (DS) # terms with literals. The BNF of DS programs is displayed in Figure 1. Assuming a call by value evaluation strategy, the BNF of CPS programs is displayed in Figure 2. CPS programs are prototypically obtained by CPS transforming DS programs, as defined in Figure 3 [7, 20, 21]. Figure 4 displays our starting point: a standard abstract machine implementing # reduction for CPS programs. This machine is a simplified version of another machine studied jointly with Belmina Dzafic and Frank Pfenning [6, 9, 11] We use two judgments, indexed by the syntactic categories of ....
....2cc t #v.e k Fig. 6. Characterization of a CPS program with second class continuations Furthermore, 2Cont validity is closed under # reduction, which means that it is preserved by regular evaluation as well as by the arbitrary simplifications of a CPS compiler [21]. The corresponding formal statement and its proof are straightforward and omitted here: we rely on them in the proof of Theorem 1. Therefore each use of each continuation identifier k is uniquely determined, capturing the fact that in the BNF of 2Cont valid CPS programs, one continuation ....
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
....Values n [ v : b j x:e v 2 Values v [ v : b j x j x:e . where e 2 Figure 1 displays Plotkin s call by name CPS transformation C n (which simulates call by name under call by value) Side note: the term CPS stands for Continuation Passing Style . It was coined in Steele s MS thesis [35]. Figure 2 displays Plotkin s call by value CPS transformation C v (which simulates call by value under call by name) Figure 3 displays the standard thunk based simulation of call by name using call by value evaluation of the language . extends as follows. e 2 e : j delay e j force ....
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
.... of the calculus that is insensitive to its order of evaluation: the sub language of continuation passing style (CPS) A CPS transformation translates terms into CPS (and in so doing, it encodes an evaluation order) As such, it is useful in compilers both for functional languages such as Scheme [4, 19, 30] and ML [1, 20] with a translation encoding eager semantics, and for pure languages such as Haskell [10, 23] with a transformation encoding lazy evaluation. There is therefore a strong interest in having efficient CPS transformations. The traditional way amounts to (1) performing the ....
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
....an approximative solution to the control flow problem in a higher order, untyped functional language: given a closed program, find what functions are called at each application point in the program in any run of the program. The source programs are assumed to be in Continuation Passing Style [13, 15]. 2 1.3 Notations In the following presentation we make use of basic notions of domain theory, as can be found in Winskel s textbook [16] A cpo is a set together with a complete partial order relation. For A and B cpo s, A # c B is the cpo of continuous functions from A to B. The cpo A# is ....
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
No context found.
G. L. Steele, Jr. Data representation in PDP-10 MACLISP. Technical Report AI Memo 420, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, Sept. 1997.
No context found.
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
No context found.
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Master's thesis, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978. Technical report AI-TR-474.
No context found.
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Master's thesis, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978. Technical report AI-TR-474.
No context found.
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Master's thesis, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978. Technical report AI-TR-474.
No context found.
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Master's thesis, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978. Technical report AI-TR-474.
No context found.
Guy L. Steele Jr. Rabbit: A compiler for Scheme. Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, May 1978.
No context found.
G.L. Steele. Rabbit: A compiler for Scheme. (A study in compiler optimization). Technical Report AI-TR-474, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, May 1978.
No context found.
Guy Lewis Steele Jr. and Gerald Jay Sussman. Lambda, the ultimate imperative. A. I. Memo 353, M. I. T. Artificial Intelligence Laboratory, March 1976.
First 50 documents
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