13 citations found. Retrieving documents...
J. C. Reynolds. Denitional Interpreters for Higher-Order Programming Languages. In Proceedings of the 25th ACM National Conference, pages 717740. Boston, 1972.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
CPS Translations and Applications: The Cube and Beyond - Barthe (1996)   (5 citations)  (Correct)

.... the literature since the work of Meyer and Wand [45] Applications, 2 too numerous to be listed exhaustively here, include compilation [1, 25] transformation [14, 49] and analysis [58, 59, 65] of typed programming languages, construction of semantics denitions for languages with jumps [56, 61], exceptions, and concurrency primitives [26] embedding of classical logics in intuitionistic logics [31, 48] techniques to infer strong normalization from weak normalization in typed calculi [68, 74] and the construction of looping combinators in inconsistent pure type systems [15] Related ....

J. C. Reynolds. Denitional Interpreters for Higher-Order Programming Languages. In Proceedings of the 25th ACM National Conference, pages 717740. Boston, 1972.


Modeling Fine Control of Demand in Haskell - Sheard, Harrison, Hook (2001)   (Correct)

....the distinction between a value of a type and a computation of a given type. Using this basic distinction, Danvy[2] identi ed two basic forms of monadic interpreters for functional languages: the Kleisli interpreter that models functions as mappings from values to computations, and the Reynolds[22] interpreter that models functions as transformations on computations. The di erence between the two is that the Reynolds interpreter makes the evaluation strategy (call by value vs. call by name) of the language being modeled explicit without depending upon the evaluation strategy of the ....

....the function part (f) to obtain a function value (FV f1) Then apply f1 to the suspended argument. The argument is suspended by rst translating x, then transforming this computation to run in the current environment using inEnv. This is the spot where we specify a Reynolds Style interpreter[22]. As we saw in the App case the meaning of a function is a Value of the form FV f, where f is a function with type (M Value M Value) The meaning of an abstraction must compute such a value. This is accomplished by translating the body of the abstraction (l) then applying the computation ....

Reynolds, J., Denitional interpreters for higher order programming languages, ACM Conference Proceedings (1972), pp. 717-740.


Flow-Based Function Customization in the Presence.. - Dimock..   (Correct)

....rst order functions. Another uniform strategy is defunctionalization, in which every function value is represented as an element of an algebraic datatype whose constructor uniquely identi es the abstraction of the function and whose components are the values of the free variables of the abstraction[32, 5] This is similar to a closure, except that the environment is paired not with a code pointer but with an abstract tag denoting the function. Call sites are transformed to dispatch o this tag to a direct call of the globally known closure converted function. In the simplest approach, there is one ....

J. Reynolds. Denitional interpreters for higher-order programming languages. In ACM Annual Conference, pp. 717-740, 1972.


Enforcing Safety Properties by Program Specialization (Extended.. - Thiemann (2000)   (2 citations)  (Correct)

....of view is a translation that makes the threading of the security state explicit. At each primitive operation, a translated program steps the security state and checks whether the result is bad. 3. 1 Naive translation Figure 2 shows a translation to continuation passing and state passing style [32], augmented by stepping and testing of the security state. The translation makes explicit the ow of control and the current security state. Using 0 as the type of answers that can be extracted from a program, the translation acts on types as follows. Proposition 1 If e : then jj jj jej : ....

John C. Reynolds. Denitional interpreters for higher-order programming languages. In ACM Annual Conference, pages 717-740, July 1972.


Enforcing Safety Properties Using Type Specialization - Thiemann (2000)   (1 citation)  (Correct)

....point of view is a translation that makes the threading of the security state explicit. Before attempting a primitive operation, a translated program steps the security state and checks whether the result is bad. Figure 6 shows a translation to continuation passing and state passing style [30], augmented by stepping and testing of the security state. The translation makes explicit the ow of control and of the current security state. Using Ans as the type of answers that can be extracted from a program, the translation acts on types as follows. Proposition 2. If e : then jj jj ....

J. C. Reynolds. Denitional interpreters for higher-order programming languages. In ACM Annual Conference, pages 717-740, July 1972.


Modularizing kCFA Makes It Polyvariant - Lee, Yi   (Correct)

....for almost all program analyses for higherorder programs. CFA safely estimates which functions will be called at each application. Estimating program executions along these control paths exposes program properties of interest. CFA s results are also directly used by compilers in defunctionalizing [Rey98a, Rey98b] 1 application expressions into case selections on tags of closures. After we describe the model for our modular analysis in Section 2, we rst show the case for 0CFA. After the de nition of 0CFA in Section 3 we present its modular version in Section 4, and show in Section 5 that it is not sound ....

John C. Reynolds. Denitional interpreters for higher-order programming languages. Higher-Order and Symbolic Computation, 11(4):363-397, December 1998. [Rey72]'s reprint.


Alias Types - Smith, Walker, Morrisett (1999)   (26 citations)  (Correct)

....(v(v 1 ; vn ) In order to simplify the language and its typing constructs, our functions never return. However, a higher level language that contains call and return statements can be compiled into our language of locations by performing a continuation passing style (CPS) transformation [15, 16]. It is possible to de ne a direct style language, but doing so is less elegant. Such a choice would force us to adopt an awkward syntax that allows functions to return portions of the store. In a CPS style, all control ow transfers are handled symmetrically by calling a continuation. Functions ....

John C. Reynolds. Denitional interpreters for higher-order programming languages. In Conference Record of the 25th National ACM Conference, pages 717-740, Boston, August 1972.


Sound Rules for Parallel Evaluation of a Functional Language.. - Moreau, Ribbens (1993)   (2 citations)  (Correct)

....the observational equivalence of two terms is not an immediate task but Plotkin gave a powerful technique for this purpose relating the CPS translation to the observational equivalence. The CPS translation is an old idea in computer science. It was rst formalised by Fischer and Reynolds [10] [25]; it is de ned by the following equations where [ maps a call by value term to a lambda term: De nition 3.2 (CPS translation) V ] k:k (V ) with V a value (cps1) MN ) k: M ] m: N ] n:mnk) cps2) x) x with x a variable or constant (cps3) x:M) x: M ] cps4) ....

John Reynolds. Denitional interpreters for higherorder programming languages. In 25th ACM National Conference, pages 717-740, 1972.


Flow-Directed Closure Conversion for Typed Languages - Cejtin, Jagannathan, Weeks (2000)   (19 citations)  (Correct)

....the code to be executed (typically a code pointer) when the procedure is applied, and an environment containing the values of the procedure s free variables. The code portion of a procedure is translated to take its environment as an extra argument. Like previous work on defunctionalization [19, 3], the translation implements closures as elements of a datatype, and dispatches at call sites to the appropriate code. We di er in that the datatypes in the target language express all procedures that may be called at the same call site as determined by ow analysis. Consequently, the size of ....

....applied at a given call site. An alternative to Minamide et al. s solution was proposed by Bell et al. 3] Their approach has the bene t of using a simply typed target language, but does not express control ow information in the target program. Inspired by a technique rst described by Reynolds [19], they suggest representing closures as members of a datatype, with one datatype for each di erent arrow type in the source program. Tolmach and Oliva [26] extend Bell et al. by using a weak monovariant ow analysis based on type inference [11] They re ne the closure datatypes so that there is ....

John C. Reynolds. Denitional interpreters for higher-order programming languages. In ACM Annual Conference, pages 717-740, 1972.


A Parallel Functional Language With First-Class Continuations.. - Moreau   (Correct)

....in this example. 4 Symmetric or Asymmetric Continuation Passing Style Figure 7 displays a translation of the sequential subset of C using the continuationpassing style or CPS for short. The CPS translation is an old idea in computer science; it was initially proposed by Fisher [8] and Reynolds [33], and further investigated by Plotkin [27] Such a style is often used for denotational semantics and for program transformations in compilers [3] 4] 34] 35] 1] In our notation, a translation consists of a set of translation rules having the following pattern: Term] exp. The left hand ....

John C. Reynolds. Denitional Interpreters for Higher-Order Programming Languages. In 25th ACM National Conference, pages 717-740, 1972.


M-LISP: A Representation-Independent Dialect of LISP with.. - Muller (1992)   (Correct)

....characterizes the extensional class of partial functions over S expression that are LISPde nable. On the other hand, it is well known that circumstances changed this recursiontheoretic exercise to one in programming language semantics. The evaluator is then taken as a de nitional interpreter (cf. [Rey72]) specifying the computational behavior of LISP. So we are now concerned with a host of qualitative computational issues such as evaluation order and scoping discipline. It is well known that the evaluator is not completely satisfactory from this perspective. The evaluator s iterated evaluation ....

John Reynolds. Denitional interpreters for higher-order programming languages. In Proceedings of the ACM Annual Conference, pages 717-740. ACM, 1972.


Alias Types - Smith, Walker, Morrisett   (26 citations)  (Correct)

....(v(v 1 ; vn ) In order to simplify the language and its typing constructs, our functions never return. However, a higher level language that contains call and return statements can be compiled into our language of locations by performing a continuation passing style (CPS) transformation [15, 16]. It is possible to de ne a direct style language, but doing so is less elegant. Such a choice would force us to adopt an awkward syntax that allows functions to return portions of the store. In a CPS style, all control ow transfers are handled symmetrically by calling a continuation. Functions ....

John C. Reynolds. Denitional interpreters for higher-order programming languages. In Conference Record of the 25th National ACM Conference, pages 717{ 740, Boston, August 1972.


Modularizing kCFA Makes It Polyvariant - Lee, Yi   (Correct)

No context found.

John C. Reynolds. Denitional interpreters for higher-order programming languages. In Proceedings of the ACM Annual Conference, pages 717-740, August 1972.

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