23 citations found. Retrieving documents...
M. Felleisen and D.P. Friedman. Control operators, the secd-machine, and the lambda-calculus. In 3rd Working Conference on the Formal Description of Programming Concepts, August 1986. (p 69)

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Dynamic Rebinding for Marshalling and Update, with .. - Bierman, Hicks..   (Correct)

.....e) v # = #z :T .e 1 , u 2 .w = u 1 , u 2 ) T .e) w = #z :T .e :T .e) w = #z :T . e and Figure 4: Three Call by Value Lambda Calculi Error Rules First, we recall the important unique decomposition property of evaluation contexts for # c , essentially as in [FF87, p. 200] and generalise it to the more subtle evaluation contexts of # r and # d : Theorem 1 (Unique decomposition for # r and # d ) Let e be a closed expression. Then, in both the redex time and destruct time calculi, exactly one of the following holds: 1) e is a value; 2) e err; 3) there ....

....style or using an abstract machine with concrete environments. We believe, however, that our reduction semantics, with small step reductions over the source syntax, is more perspicuous. Partial Continuations The context marking operator mark is reminiscent of Felleisen and Friedman s [FF87] prompt operator #, and marshal unmarshal of their control operator . Their operators capture partial continuations, whereas our operators may be seen as capturing partial environments: whereas mark marks a binding context, # marks an evaluation context. In fact, # marsh filters the captured ....

Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD-machine, and the lambda calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193--219. Elsevier North-Holland, 1987.


Dynamic Rebinding for Marshalling and Update, with.. - Bierman, Hicks.. (2003)   (Correct)

....to confirm that our definitions are coherent and more substantial results showing that #r and #d are essentially CBV. Details of proofs can be found in the technical report [BHS 03] First, we recall the important unique decomposition property of evaluation contexts for #c , essentially as in [FF87, p. 200] and generalise it to the more subtle evaluation contexts of #r and #d : THEOREM 1 (UNIQUE DECOMPOSITION FOR #r AND #d ) Let e be a closed expression. Then, in both the redex time and destruct time calculi, exactly one of the following holds: 1) e is a value; 2) e err; 3) there ....

....style or using an abstract machine with concrete environments. We believe, however, that our reduction semantics, with small step reductions over the source syntax, is more perspicuous. Partial Continuations The context marking operator mark is reminiscent of Felleisen and Friedman s [FF87] prompt operator #, and marshal unmarshal of their control operator . Their operators capture partial continuations, whereas our operators may be seen as capturing partial environments: whereas mark marks a binding context, # marks an evaluation context. In fact, # marsh filters the captured ....

Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD-machine, and the lambda calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193--219. Elsevier North-Holland, 1987. 96] Cdric Fournet, Georges Gonthier, Jean-Jacques Lvy, Luc Maranget, and Didier Rmy. A calculus of mobile agents. In Proc. 7th CONCUR, LNCS 1119, pages 406--421, 1996.


Adequacy for Algebraic Effects - Plotkin, Power   (Correct)

....f of strictly positive arity. Constants yield a kind of exceptional termination. Transitions terminate at values, given by V : 0 succ(V ) tt ff # V,V #x : #.M where we restrict #x : #.M to be closed. We write n for succ n (0) It is convenient to use Felleisen s idea [7] of specifying transitions via evaluation contexts and redexes. The evaluation contexts here are given by: E : succ(E) zero(E) pred(E) if E then M else M E,M V,E # 1 (E) # 2 (E) EM V E where the terms appearing are restricted to be closed. ....

M. Felleisen, and D. P. Friedman, Control Operators, the SECD-machine, and the Lambda-Calculus, in Formal Description of Programming Concepts III (ed. M. Wirsing), pp. 193--217, Amsterdam: Elsevier Science Publishers B.V. (NorthHolland) , 1986.


Tracing Lazy Functional Languages - Jeremy Gibbons And (1996)   (2 citations)  (Correct)

....provides a one dimensional, textual representation of terms, rather than requiring a two dimensional graphical representation. The rest of this paper is structured as follows. In Section 2 we review the call by name lambda calculus and introduce the call by need calculus; this material is not new [2, 3, 6, 8, 15, 24]. In Section 3 we describe the implementation of a program to perform evaluation in the call by need lambda calculus. Finally, in Section 4 we present some possible future extensions and discuss related work. 2 Lambda calculi The call by need lambda calculus is most naturally presented by ....

....model of deterministic program execution. In order to provide such a model, we define a deterministic restriction of name Gamma Gamma Gamma , called standard reduction and written name 7 Gamma Gamma Gamma . A convenient way of formulating standard reduction is to use evaluation contexts [8], a subset of the contexts of the calculus. The idea behind evaluation contexts is to relate a term N to one or more filled contexts C i [M i ] that is, N C i [M i ] in such a way that at most one M i is reducible under name Gamma Gamma Gamma ; standard reduction then reduces this particular ....

Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD-machine, and the lambda calculus. In M. Wirsing (editor), Formal Description of Programming Concepts III, pages 193--219. Elsevier North-Holland, 1987.


Continuation-based Transformations for Coordination Languages - Jagannathan (1999)   (Correct)

....this context, we consider a formal language specification and abstract implementation that expresses both message passing and CmPS style coordination. The paper is organized as follows. The next section presents a direct style formal operational semantics for our language using a CEK machine [FF86, FF87] formulation. Threads in the reference semantics are stationary and access global state using message passing primitives. Section 3 presents a refinement of this semantics that describes a CmPS evaluation strategy. We proceed to prove a correspondence theorem that relates the two semantics in ....

....reference semantics. Sections 6 and 7 provide comparison to related work and conclusions. 2 The Language We define a simple parallel and distributed language L. We proceed to give a small step operational semantics for L in terms of the CEKM machine, a parallel extension of the CEK machine [FF86]. We regard the specification of this machine as a state transition system whose objects of interest include expressions, environments, continuations, threads, and shared environments. The machine implements coordination in terms of synchronous message passing. The source language for L, whose ....

Matthias Felleisen and Daniel Friedman. Control Operators, the SECD-machine, and the Lambda-calculus. In 3 rd Working Conference on the Formal Description of Programming Concepts, pages 193--219. North-Holland, 1986.


The Tail-Recursive SECD Machine - Ramsdell (1999)   (1 citation)  (Correct)

....of its two combination rules is applicable to a combination. The focus of this section is a tail recursive machine that does not seem to distinguish between the two types of combinations, however, a careful analysis of the machine shows the distinction is important for it too. The CEK machine [6] is similar to the SECD machine but closer to a denotation semantics of ISWIM. The states of the machine are triples composed of a term, an environment, and a continuation code which represents The Tail Recursive SECD Machine 18 the remainder of the computation. Figure 10 defines a CEK machine ....

.... E, arg, L, R) M, L : E, R) cekstep(K, E, arg, K # , E # ) R) #(K, K # ) nil, R) cekstep(N, E, R) A, E # , R) A, E # ) lookup(N, E) cekrun : CEK states # answers cekrun(A, E, halt) real(A, E) cekrun W = cekrun(cekstep W ) Figure 10: CEK Machine The results in [6] and [13] prove the CEK Correctness theorem. Theorem 2 (CEK Correctness) If M is a closed unmarked term, eval M = cekrun(M, nil, halt) 5.1 Tail Recursion A hint as to how the CEK machine distinguishes between the two types of combinations comes from studying its relation to the TR SECD ....

M. Felleisen and D. Friedman. Control operators, the SECD-machine, and the lambda calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193--217. Elsevier Science Publishers B. V. (North-Holland), Amsterdam, 1987. The Tail-Recursive SECD Machine 24


Communication-Passing Style for Coordination Languages - Suresh Jagannathan   (Correct)

....is not found. Within this context, we consider a formal language specification and abstract implementation that supports CmPS style coordination. The paper is organized as follows. The next section presents a direct style formal operational semantics for the kernel language using a CEK machine [7, 8] formulation. Section 3 provides further motivation for communication passing style through a series of simple examples. Because the semantics is presented in direct style, continuations are implicitly managed by the machine, and not exposed in the source program. In the context of a higher order ....

....Sections 6 and 7 provide comparison to related work and conclusions. 2 The Language In this section, we define a simple parallel and distributed language L. We proceed to give a small step operational semantics for L in terms of the CEK T machine, a parallel extension of the CEK machine [7]. We regard the specification of this machine as a state transition system whose objects of interest include expressions, environments, continuations, threads, and shared environments. The source language for L, whose grammar is shown in Figure 1, consists of two parts. L s computation component ....

M. Felleisen and D. Friedman, Control Operators, the SECD-machine, and the Lambda-calculus, in 3 rd Working Conference on the Formal Description of Programming Concepts, North-Holland, 1986, pp. 193--219.


Trace-Based Program Analysis - Colby, Lee (1996)   (4 citations)  (Correct)

....construct, the semantic meaning is usually modeled by infinite structures. For example, denotational semantics [28] uses limits of infinite chains to model the meaning of recursive functions. In standard formulations of structural operational semantics [26] and small step operational semantics [15], the behavior of loops is modeled by unbounded sequences of transitions. An analysis based on any of these semantic models is thus forced to develop some method for reasoning finitely about these (potentially) infinite objects. Usually, some form of approximation or abstraction is used and, as we ....

M. Felleisen and D.P. Friedman. Control operators, the secd-machine, and the lambda-calculus. In 3rd Working Conference on the Formal Description of Programming Concepts, August 1986.


Tracing Lazy Functional Languages - Jeremy Gibbons (1996)   (2 citations)  (Correct)

....be z:z in y) In order to provide a model for (deterministic, sequential) program execution, we define a deterministic restriction of name Gamma Gamma , called standard reduction and written name 7 Gamma Gamma . A convenient way of formulating standard reduction is to use evaluation contexts [7], a subset of the contexts of the calculus. The idea behind evaluation contexts is to relate a term N to one or more filled contexts C i [M i ] that is, N C i [M i ] in such a way that at most one M i is reducible under name Gamma Gamma ; standard reduction then reduces this particular ....

Matthias Felleisen and Daniel P. Friedman. Control operators, the SECDmachine, and the lambda calculus. In M. Wirsing (editor), Formal Description of Programming Concepts III, pages 193--219. Elsevier North-Holland, 1987.


Tracing Lazy Functional Languages - Wansbrough (1995)   (2 citations)  (Correct)

....part may be markable; but the function part is an abstraction, and an abstraction is not reducible, and no strict subterm of an abstraction is markable. QED. 3 This proof of the existence of a unique evaluation context is known as a Unique Evaluation Context theorem, and follows the idea of [FF87] where Felleisen and Friedman prove the existence of a unique sk context for control strings of their CEK machine. 4 The proof is similar to that for name , and is omitted. Syntactic domains: Variables x; y; z Values V; W : x j x:M Terms L; M;N : V j M N Contexts C : j x:C j C ....

....into call by value and vice versa, by means of continuation passing (cps) A cps transformation has the advantage that the resulting code is calling style independent: it will behave the same under call by name or call by value. OLT94] describes a cps transformation for call by need. FF87, sec. 3.2] contains a Unique Evaluation Context lemma, as required for call by need to prove that the standard reduction system is indeed standard. MOTW95] is notable for suggesting the use of the linear lambda calculus to help model call by need; it also presents a typed call by need calculus. ....

Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD-machine, and the lambda calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193--219. Elsevier North-Holland, 1987.


Chapter 5: On the Orthogonality of Assignments and.. - Felleisen, Weeks (1996)   Self-citation (Felleisen)   (Correct)

....schema relies on lazy evaluation. The compiler suspends after producing sucient output and pipes its output into an abstract machine for imperative programs. When the machine runs out of executable code, it resumes the compiler. The abstract machine is a modi Thetacation of the CEK machine [6]. The control portion of the machine is a member of W. The environment acts as a stack of references. The continuation corresponds to an evaluation context. Figure 3 contains a formal speci Thetacation of the machine and its instructions. 4 Strong Normalization The simply typed calculus has the ....

Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD-machine, and the lambda-calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193#217. Elsevier Science Publishers B.V. (NorthHolland) , Amsterdam, 1986.


The Semantics of Future - Flanagan, Felleisen (1994)   Self-citation (Felleisen)   (Correct)

.... semantics for 0 a using a sequential abstract machine called the C machine (see Figure 2) whose states are either closed terms in the run time language c or the special state error, and whose deterministic transition rules are the typical leftmost outermost reductions of the lambda calculus [5]. Each transition rule also specifies the error semantics of a particular class of expressions. For example, the transition rule for car defines that if the argument to car is a pair, then the transition rule extracts the first element of the pair. If the argument is not a pair, then the ....

....The states of the P (C ph ) machine contain no binding information relating program variables and values. Instead, the machine relies on substitution for making progress. To address this problem, we refine the P (C ph ) machine to the P (CEK) machine (see Figures 7 and 8) using standard techniques [5, 9]. 5.1 Specification of the P (CEK) machine The substitution operation is replaced by an environment in the usual manner. An environment E is a finite mapping from variables to run time values. The empty environment is denoted by ; and the operation E[x V ] extends the environment E to map ....

[Article contains additional citation context not shown here]

Felleisen, M., and Friedman, D. P. Control operators, the SECD-machine, and the lambda-calculus. In 3rd Working Conference on the Formal Description of Programming Concepts (Aug. 1986), pp. 193--219.


A Call-By-Need Lambda Calculus - Ariola, Felleisen, Maraist, Odersky, .. (1995)   (141 citations)  Self-citation (Felleisen)   (Correct)

....determined by the standard reduction relation [26] Put differently, a correct implementation of the evaluator can simply reduce the standard or leftmost outermost redex of a program until the program becomes a value. Evaluation contexts are a convenient way of formulating the evaluation relation [11]. A program M standard reduces to N , written as M 7 Gamma Gamma Gamma Gamma Gamma name N , iff M j En [ x:P )Q] and N j En [P [x : Q] As usual, M 7 Gamma Gamma Gamma Gamma Gamma name N means M standard reduces to N via the transitive reflexive closure of ....

....closure of 7 Gamma Gamma Gamma Gamma need . As usual, we will omit the tags from the arrows when the meaning is clear from the context. Verifying that the standard relation, 7 Gamma , is indeed a function from programs to programs relies on the usual Unique Evaluation Context Lemma [11]. This lemma states that there is a unique partitioning of a non answer into an evaluation context and a redex, which implies that there is precisely one way to make progress in the evaluation. Lemma 4.2 Given a program M 2 let , either M is an answer, or there exists a unique evaluation ....

M. Felleisen and D. P. Friedman. Control operators, the SECD-machine, and the lambda-calculus. In 3rd Working Conference on the Formal Description of Programming Concepts, Ebberup, Denmark, August 1986.


The Semantics of Future and Its Use in Program Optimization - Flanagan, Felleisen (1995)   (20 citations)  Self-citation (Felleisen)   (Correct)

.... of the language using a sequential abstract machine called the C machine (see Figure 2) whose states are either closed terms over the run time language c or else the special state error, and whose deterministic transition rules are the typical leftmostoutermost reductions of the calculus [8]. Each transition rule also specifies the error semantics of a particular class of expressions. For example, the transition rule for car defines that if the argument to car is a pair, then the transition rule extracts the first element of the pair. If the argument is not a pair, then the ....

....other objects in the P (C) machine is too coarse. For example, it does not permit a detailed view of the synchronization operations that are required for coordinating futures. To address these problems, we refine the P (C) machine to the P (CEK) machine (see Figure 4) using standard techniques [8, 11]. 4.1 The P (CEK) machine An evaluation context, which represents the control stack, is now represented as a sequence of activation records (which are similar to closures) A tagged activation record (hary x; M;Ei) represents a point where the continuation can be split into separate tasks (cmp. ....

[Article contains additional citation context not shown here]

Felleisen, M., and Friedman, D. P. Control operators, the SECD-machine, and the lambda-calculus. In 3rd Working Conference on the Formal Description of Programming Concepts (Aug. 1986), 193--219.


Revised^4 Report on the Algorithmic Language Scheme - Clinger, (ed.), Rees.. (1991)   (242 citations)  Self-citation (Friedman)   (Correct)

No context found.

Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD-machine, and the lambdacalculus. In 3rd Working Conference on the Formal Description of Programming Concepts, pages 193-- 219, August 1986.


Semantics-based Program Analysis via - Symbolic Composition Of   (Correct)

No context found.

M. Felleisen and D.P. Friedman. Control operators, the secd-machine, and the lambda-calculus. In 3rd Working Conference on the Formal Description of Programming Concepts, August 1986. (p 69)


Trace-based Program Analysis - Christopher Colby Peter (1996)   (4 citations)  (Correct)

No context found.

M. Felleisen and D.P. Friedman. Control operators, the secd-machine, and the lambda-calculus. In 3rd Working Conference on the Formal Description of Programming Concepts, August 1986.


Mixin Modules for Dynamic Rebinding - Davide Ancona Sonia   (Correct)

No context found.

Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD-machine, and the lambda-calculus. In 3rd Working Conference on the Formal Description of Programming Concepts, pages 193--219, Ebberup, Denmark, August 1986.


Mixin Modules for Dynamic Rebinding - Davide Ancona Sonia   (Correct)

No context found.

Matthias Felleisen and Daniel P. Friedman. Control operators, the SECDmachine, and the lambda-calculus. In 3rd Working Conference on the Formal Description of Programming Concepts, pages 193--219, Ebberup, Denmark, August 1986.


Adequacy for Algebraic Effects - Plotkin, Power (2001)   (Correct)

No context found.

M. Felleisen, and D. P. Friedman, Control Operators, the SECD-machine, and the Lambda-Calculus, in Formal Description of Programming Concepts III (ed. M. Wirsing), pp. 193--217, Amsterdam: Elsevier, 1986.


Dynamic Rebinding for Marshalling and Update, with .. - Bierman, Hicks.. (2004)   (Correct)

No context found.

Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD-machine, and the lambda calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193--219. Elsevier North-Holland, 1987.


Dynamic Rebinding for Marshalling and Update, with .. - Bierman, Hicks..   (Correct)

No context found.

Matthias Felleisen and Daniel P. Friedman. Control operators, the SECD-machine, and the lambda calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193--219. Elsevier North-Holland, 1987. 96] Cedric Fournet, Georges Gonthier, Jean-Jacques Levy, Luc Maranget, and Didier Remy. A calculus of mobile agents. In Proc. 7th CONCUR, LNCS 1119, pages 406--421, 1996.


Semantics-based Program Analysis via Symbolic Composition of.. - Colby (1996)   (Correct)

No context found.

M. Felleisen and D.P. Friedman. Control operators, the secd-machine, and the lambda-calculus. In 3rd Working Conference on the Formal Description of Programming Concepts, August 1986. (p 69)

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