| Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD machine, and the #-calculus. In Martin Wirsing, editor, Formal Description of Programming Concepts III, pages 193--217. Elsevier Science Publishers B.V. (North-Holland), Amsterdam, 1986. |
....generic support for using developments in combination with any method. 1 Discussion 1.1 Background and Motivation A programming language is defined as a set of programs and a way to evaluate (or execute ) the programs. It is increasingly popular to define evaluation via program rewriting [25, 9, 10, 11, 3, 19, 12, 26]. In this approach, evaluation rewrite rules are repeatedly applied at particular program positions which are typically specified using evaluation contexts [9] Other kinds of program rewriting than evaluation are also desirable. Potential uses of rewriting based program transformations include ....
....to evaluate (or execute ) the programs. It is increasingly popular to define evaluation via program rewriting [25, 9, 10, 11, 3, 19, 12, 26] In this approach, evaluation rewrite rules are repeatedly applied at particular program positions which are typically specified using evaluation contexts [9]. Other kinds of program rewriting than evaluation are also desirable. Potential uses of rewriting based program transformations include optimizing compilers, partial evaluators, and program simplifiers. These transformations may use the already existing evaluation rules in arbitrary contexts or ....
M. Felleisen, D. Friedman. Control operators, the SECD-machine, and the #-calculus. In M. Wirsing, ed., Formal Description of Programming Concepts --- III. North-Holland, 1986.
....then the expression in question reduces to a special form (written U) Once created, this will subsequently bubble its way up to the root of the syntax tree. 2.3. 2 Expression evaluation contexts Following the example of other presentations of reduction semantics (e.g. 8] and ultimately [7]) Cholera s expression semantics makes use of evaluation contexts. Informally, an evaluation context is a piece of syntax with a hole in it . Contexts provide a convenient way to generalise a whole family of evaluation rules where independent reductions occur in sub expressions. The following ....
M. Felleisen and D. Friedman. Control operators, the SECD-machine, and the #-calculus. In Formal Description of Programming Concepts III, pages 193--217. North-Holland, 1986. 30
....expression if it is to reduce. In the presence of the putative rule above, an lvalue could reduce to a value regardless of its situation in the wider context. 3.3. 1 Expression evaluation contexts Following the example of other presentations of reduction semantics (e.g. Gor95] and ultimately [FF86]) our expression semantics makes use of evaluation contexts. Informally, an evaluation context is a piece of syntax with a hole in it . Contexts provide a convenient way to generalise a whole family of evaluation rules where independent reductions occur in sub expressions. The following rule, ....
M. Felleisen and D. Friedman. Control operators, the SECDmachine, and the #-calculus. In Formal Description of Programming Concepts III, pages 193--217. North-Holland, 1986.
....of definitions followed by a single expression the entry point of the program. 4. A SEMANTICS FOR MINI EMACS LISP We present a structural operational or small step semantics [23] for Mini Emacs Lisp. We use evaluation contexts and syntactic rewriting as developed by Felleisen and Friedman [6]. 4.1 Values and Intermediate Terms We use separate syntactic categories for intermediate expressions and values. Here is the syntax for literals and abstractions: Fun : func (x) e) Val : prim c) sym s) pair v ITerm : bind x v e) Exp : v The elements of ....
....Moreau [20] rounded up the view on dynamic binding by introducing a syntactic theory of dynamic binding with a calculus allowing equational reasoning. From this theory, he also derived a small step semantics using evaluation contexts and syntactic rewriting as developed by Felleisen and Friedman [6]. Wright and Felleisen [30, 31] and Harper and Stone [11] formulated semantics for exception mechanisms which also employ a kind of dynamic binding. Lewis at al. 17] introduce a language feature called implicit parameters that provides dynamically scoped variables for languages with ....
M. Felleisen and D. P. Friedman. Control operators, the SECD-machine, and the #-calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193--217. North-Holland, 1986.
....call by name strategy, but only a restricted language enjoys this property when interpreted under the ML like call by value strategy. The focus of our study is on the typing properties of CPS conversion of F# control, following the seminal work of Plotkin [36] extended by Felleisen, et al. [10, 9]) and Meyer and Wand [27] extended by Griffin [16] and Duba, et al. 8, 18] First, we isolate several continuation passing style sub languages of F# . The standard CPS language is the largest sub language of F# on which the by value and by name variants of the standard strategies coincide, ....
Matthias Felleisen and Daniel Friedman. Control operators, the SECD machine, and the #-calculus. In Formal Description of Programming Concepts III. North-Holland, 1986.
....a Subset of CML Reppy [26, 27] has defined the operational semantics of # cv , a small concurrent # calculus that models the main concurrency features of CML. He uses the (non structural) style of operational semantics based on reduction of evaluation contexts, as developed by Felleisen et al. [4, 33]. Here, we describe the same language # cv using MSOS, thus illustrating the applicability of our framework. To facilitate comparison with Reppy s semantics, we adhere closely to his choice of notation (despite some mild idiosyncrasies) A previous version of this paper adopted the notation of ....
M. Felleisen and D. P. Friedman. Control operators, the SECD machine, and the #-calculus. In Formal Description of Programming Concepts III, Proc. IFIP TC2 Working Conference, Gl. Averns,
....However, the following technique not only subsumes this approach, but also has the advantage of admitting an explanation in terms of inference systems. Evaluation Contexts: An alternative way of controlling the applicability of reductions is to require them to occur in evaluation contexts [10]. It is convenient to specify evaluation contexts E in the same way as the abstract syntax of programs, using context free grammars. The symbol [ represents the hole of the context; the grammar must ensure that exactly one hole occurs in any evaluation context. The restriction to evaluation ....
M. Felleisen and D. P. Friedman. Control operators, the SECD machine, and the #-calculus. In Formal Description of Programming Concepts III, Proc. IFIP TC2 Working Conference, Gl. Averns,
....fitting actions into Mason and Talcott s framework is to define a reduction semantics for basic AN. A preliminary sketch was presented in [16] The essential novelty compared to [22, App.C] is that control is represented by means of evaluation contexts. 3. 1 Decomposition An evaluation context [8] (or reduction context [19] is an action with a hole at a legal point of execution in the action. Either just a hole [ a hole to the left of the sequential combinators (seq is either of and then , trap ) or a hole on 7 either side of the symmetric combinators (sym is either of and , or ....
M. Felleisen and D. P. Friedman. Control operators, the SECD-machine, and the -calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III. IFIP, 1987.
....the approach does not yet seem to be applicable to the description of conventional programming languages. A non structural but quite succinct approach to operational semantics is to give an (unlabelled) reduction semantics for applications of evaluation contexts C[t] following Felleisen et al. [7, 38]. The use of evaluation contexts appears to provide some inherent modularity, but obtaining full modularity may involve the introduction of many artificial internal steps [5] Reppy s evaluation context semantics for ML concurrency primitives [33, 34] has better modularity than the SOS given in ....
M. Felleisen and D. P. Friedman. Control operators, the SECD machine, and the #-calculus. In Formal Description of Programming Concepts III, Proc. IFIP TC2 Working Conference, Gl. Averns,
.... t # R T t is current in C thr(C) def = his C (t) t # cur(C) In the above example, there are just the two threads t 1 t 0 and t 2 . Evaluation Table 4 also contains grammars for generating redexes r and evaluation contexts e[ which we use to control the evaluation [FF86] of (the expression part of) run time tasks. The contexts are designed such that evaluation proceeds leftmost innermost. Note that fork#a# is a redex independent of a being a value; similarly, an expression let x = a in b becomes a redex as soon as the bound expression a has reduced to a value. ....
M. Felleisen and D. P. Friedman. Control Operators, the SECD-machine, and the #-calculus. In M. Wirsing, ed, Formal Description of Programming Concepts III, pages 193--217. NorthHolland, 1986.
....we decompose each non value expression as a reduction context filled with a redex. Reduction contexts identify the subexpression of an expression that is to be evaluated next, they correspond to the standard reduction strategy (left first, call by value) of [Plo75] and were first introduced in [FF86]. An expression e is either a value or it can be decomposed uniquely into a reduction context filled with a redex. Thus, local actor computation is deterministic. Definition (V E rdx R) The set of values, V, the set of redexes, E rdx , and the set of reduction contexts, R, are defined by V = At ....
M. Felleisen and D.P. Friedman. Control operators, the SECD-machine, and the -calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193--217. North-Holland, 1986.
....) h Gammai hk : Ci OE A 0 : B OE 2 fans; cntg 4.2. DS translation for the cube Figure 14 presents a DS translation from the domain free CPS language to the domain free cube. For objects, the most interesting aspect is that continuations are translated to call by name evaluation contexts [23] dened by the following grammar. E 2 Evaluation Contexts[CUBE] E : Delta] j E O j E C The holes in the evaluation contexts are lled during the translation of the CPS answer syntactic category. The translation of constructors and kinds is straightforward double negations are removed and ....
M. Felleisen and D. Friedman. Control operators, the SECD machine, and the -calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages
....that they may denote nodes in an alias chain. A node o # domO (C) is active if there is t # dom T (C) with s C (t) o, otherwise it is called idle. Evaluation. Figure 3 contains grammars to generate redexes r and evaluation contexts e[ used to control the leftmost innermost evaluation [FF86] of run time expressions. A simple algorithm computes for every closed run time expression a ## R a unique pair of redex r and context e[ such that a = e[r] Behaviors. The semantics of a closed term a is given by assigning to it the initial configuration [ a ] t m: # #, #, a #, ....
M. Felleisen and D. P. Friedman. Control Operators, the SECD-machine, and the #-calculus. In M. Wirsing, ed, Formal Description of Programming Concepts III, pages 193--217. North-Holland, 1986.
....of the language is a function eval from programs to answers. A program is a term with no free variables and, in practical languages, an answer is a member of the syntactic category of values. A common method for specifying the semantics of is based on the Curry Feys standard reduction theorem [27, 75]. The standard reduction theorem defines a partial function 7 Gamma from programs to programs that corresponds to a single evaluation step of an abstract machine for . A standard step (i) decomposes the program into a context E and a leftmostoutermost redex R (not inside an abstraction) and ....
....step (i) decomposes the program into a context E and a leftmostoutermost redex R (not inside an abstraction) and (ii) fills E with the contractum of R. The special contexts E are evaluation contexts and have the following definition for the call by value and call by name variants of respectively [27]: E v : j (V E v ) j (E v M) E n : j (E n M) Conceptually, the hole of an evaluation context, points to the current instruction, which must be a fi v or fi redex. The decomposition of M into E[ V N ) where (V N) is a redex means that the current instruction is (V N) and that ....
[Article contains additional citation context not shown here]
Felleisen, M. and Friedman, D. P. Control operators, the SECD-machine, and the -calculus. In Wirsing, M., editor, Formal Description of Programming Concepts-III, North-Holland (1986) 193--217.
No context found.
Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD machine, and the #-calculus. In Martin Wirsing, editor, Formal Description of Programming Concepts III, pages 193--217. Elsevier Science Publishers B.V. (North-Holland), Amsterdam, 1986.
No context found.
Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD machine, and the #-calculus. In Martin Wirsing, editor, Formal Description of Programming Concepts III, pages 193--217. Elsevier Science Publishers B.V. (North-Holland), Amsterdam, 1986.
No context found.
Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD machine, and the #-calculus. In Martin Wirsing, editor, Formal Description of Programming Concepts III, pages 193--217. Elsevier Science Publishers B.V. (North-Holland), Amsterdam, 1986.
No context found.
M. Felleisen and D. P. Friedman. Control operators, the SECD machine, and the -calculus. In Formal Description of Programming Concepts III, Proc. IFIP TC2 Working Conference, Gl. Avernaes, 1986.
No context found.
M. Felleisen and D. Friedman. Control operators, the SECD-machine, and the -calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193--217. North-Holland, 1986.
No context found.
Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD machine, and the l-calculus. In Martin Wirsing, editor, Formal Description of Programming Concepts III, pages 193--217. Elsevier Science Publishers B.V. (North-Holland), Amsterdam, 1986.
No context found.
Matthias Felleisen and Daniel Friedman. Control operators, the SECD machine, and the -calculus. In Formal Description of Programming Concepts III. North-Holland, 1986.
No context found.
M. Felleisen, D. Friedman. Control operators, the SECD-machine, and the #-calculus. In M. Wirsing, ed., Formal Description of Programming Concepts --- III. North-Holland, 1986.
No context found.
M. Felleisen and D. Friedman. Control operators, the SECD-machine, and the #-calculus. In M. Wirsing, ed., Formal Description of Programming Concepts --- III, pp. 193--219. NorthHolland, 1986.
No context found.
M. Felleisen and D. P. Friedman. Control operators, the SECD-machine, and the - calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193--217. North-Holland, 1986.
No context found.
M. Felleisen, D. Friedman. Control operators, the SECD-machine, and the #-calculus. In M. Wirsing, ed., Formal Description of Programming Concepts --- III. North-Holland, 1986.
First 50 documents Next 50
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