## A study of syntactic and semantic artifacts and its application to lambda definability, strong normalization, and weak normalization in the presence of state (2008)

Citations: | 4 - 0 self |

### BibTeX

@TECHREPORT{Munk08astudy,

author = {Johan Munk},

title = {A study of syntactic and semantic artifacts and its application to lambda definability, strong normalization, and weak normalization in the presence of state},

institution = {},

year = {2008}

}

### OpenURL

### Abstract

### Citations

1285 | A structural approach to operational semantics
- Plotkin
- 2004
(Show Context)
Citation Context ...r, a formal specification of the semantics of a language is usually presented via a semantic artifact. The two main approaches result in a denotational semantics [64, 65] and an operational semantics =-=[56, 60]-=-, respectively. In the denotational approach the semantics is specified as a 46function mapping programs to their meaning, which might very well be a function of concepts like an environment, a store... |

329 |
The Mechanical Evaluation of Expressions
- Landin
- 1964
(Show Context)
Citation Context ...times called the pure λ-calculus to emphasize that no basic constants or functional constants are included in the term language. Regularly since Landin’s work The mechanical evaluation of expressions =-=[50]-=-, such constants are included in λ-terms [33, 40, 59]. Such an ‘impure’ λ-calculus is usually called an ‘applied’ λ-calculus [45, Section 4.7]. Untyped and typed calculi In the grammar of terms, no no... |

327 |
Denotational Semantics: A Methodology for Language Development
- Schmidt
- 1986
(Show Context)
Citation Context ...oundness of optimizations in a compiler, a formal specification of the semantics of a language is usually presented via a semantic artifact. The two main approaches result in a denotational semantics =-=[64, 65]-=- and an operational semantics [56, 60], respectively. In the denotational approach the semantics is specified as a 46function mapping programs to their meaning, which might very well be a function of... |

302 | Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem - Bruijn - 1972 |

299 | Definitional interpreters for higher-order programming languages
- Reynolds
- 1972
(Show Context)
Citation Context ...lleisen and Friedman designed another machine called the CEK machine [32]; a simple machine inspired by the SECD machine but with roots in Reynolds’s work on definitional interpreters [32, Section 2] =-=[61]-=-. Several variants of the CEK machine have been presented [31]. One of these variants is the CESK machine which was presented in Felleisen’s PhD-dissertation as a specification of the semantics of wha... |

286 |
The Lambda-Calculus, its Syntax and Semantics, volume 103
- Barendregt
- 1984
(Show Context)
Citation Context ...tively. Axioms constitute the notion of reduction, and inference rules constitute the compatibility rules and the reflexive transitive symmetric closure. Barendregt introduces the λ-calculus this way =-=[7]-=-. Equations in the λ-calculus are then usually written λ ⊢ t = t ′ . 17⇐⇒ λ ⊢ t = t ′ [7, Proposition 3.2.1]. In this chapter the λ-calculus has not been defined as a proof system, because the reduct... |

256 | A Revised Report on the Syntactic Theories of Sequential Control and State
- Felleisen, Hieb
- 1992
(Show Context)
Citation Context ... that no basic constants or functional constants are included in the term language. Regularly since Landin’s work The mechanical evaluation of expressions [50], such constants are included in λ-terms =-=[33, 40, 59]-=-. Such an ‘impure’ λ-calculus is usually called an ‘applied’ λ-calculus [45, Section 4.7]. Untyped and typed calculi In the grammar of terms, no notion of type is included. The λ-calculus is sometimes... |

207 | Type-directed partial evaluation
- Danvy
(Show Context)
Citation Context ...k • appears on both the left-hand and righthand sides of the second clause of aux. Refunctionalizing the empty stack requires naming this recursive function. We recognize it as performing reification =-=[20]-=-, and we write it as ‘↓’ to follow the tradition. We can also refunctionalize the closures in substitutions. They are only consumed by the second clause of lookup: lookup (1, (t[ρm] · σ) m′ , S)=eval ... |

199 |
Call-by-name, call-by-value and the λ-calculus
- Plotkin
- 1975
(Show Context)
Citation Context ...) set of variables, from λ-abstractions, and from terms composed of two terms in juxtaposition: applications. 1 1 Applications was originally called combinations. In 1975 Plotkin still used that term =-=[59]-=-, and so did Abelson and Sussman (with Sussman) in 1985 [1]. 5The grammar is abstract in the sense that it does not define a language of character strings but a language of trees where internal nodes... |

186 | The call-by-need lambda calculus
- Ariola, Felleisen
- 1997
(Show Context)
Citation Context ...ic correspondence. Other possibilities include applying the syntactic correspondence to Maraist, Odersky, and Wadler’s call-by-need λ-calculus [54] and to Ariola and Felleisen’s call-by-need calculus =-=[6]-=-. The result would be an abstract machine for call-by-need, a topic that has only been partially explored [4] [9, Section 9]. So, all in all, studying functional programming and the λ-calculus has put... |

179 | The next 700 programming languages - Landin - 1966 |

156 | Fundamental concepts in programming languages - Strachey - 1967 |

126 |
Automata and Computability
- Kozen
- 1997
(Show Context)
Citation Context ...es like tuples and lists are also not directly supported. On the other hand, the λ-calculus is Turing-complete, i.e., the λ-calculus is as expressive as other sound formalisms like the Turing-machine =-=[46]-=-: It is somehow possible to represent by terms in the calculus, the above mentioned mathematical elements like integers and lists and represent functions on such elements. Lambda definability concerns... |

110 | The discoveries of continuations
- Reynolds
- 1993
(Show Context)
Citation Context ...the notion of CPS and CPS-transformations does not originate in Reynolds work on definitional interpreters. Reynolds has (like Landin [52]) later published a paper on the discoveries of continuations =-=[62]-=-. 69Danvy et al. have observed that an interpreter after the transformations implements a statetransition system, i.e., an abstract machine. Danvy et al. have systematically applied the transformatio... |

81 | Representing control: A study of the CPS transformation
- Danvy, Filinski
- 1992
(Show Context)
Citation Context ...abstract machine with two stacks. In Section 10.5, we express the compositional continuation-based normalization function from Section 10.2.3 into call-by-value direct style, using control delimiters =-=[24]-=-. The resulting normalization function is still compositional. Its control delimiters are moot since the normalization function does not capture continuations. In Section 10.6 we omit the control deli... |

78 | A lambda-calculus ‘a la de bruijn with explicit substitutions
- Kamareddine, Rios
- 1995
(Show Context)
Citation Context ...contrast, closures in the λ^ρ-calculus only associates substitutions with standard λ-terms. 2 We denote the notion of reduction ^s to indicate that the λ^s-calculus belong to the ‘λs-calculus family’ =-=[41,42]-=-. 3 Being Church-Rosser on Termˆs include Church-Rosser on terms containing free de Bruijn indices, i.e., ^s is then Church-Rosser also on open terms. This property is in an explicit-substitution sett... |

76 |
Theories of Programming Languages
- Reynolds
- 1998
(Show Context)
Citation Context ...ents in the bounded iteration applies directly in representations of other functions. An iterative representation of the factorial function on Church numerals, presented by Goldberg [36] and Reynolds =-=[64]-=-, also uses pairs in the generated series of elements: 〈�1�c, �1�c〉 〈�2�c, �1�c〉 〈�3�c, �2�c〉 〈�4�c, �6�c〉 〈�5�c, �24�c〉 . 〈�n + 1�c, �n!�c〉 An abstraction it fac achieving it facpi−1 =β pi is λp.〈�ad... |

73 |
Control Operators, the SECD machine, and the λ-calculus
- Felleisen, Friedman
- 1986
(Show Context)
Citation Context ...0]. Plotkin has this more general notion of closures to easily define a call-by-name version of the SECD machine. Other machines Felleisen and Friedman designed another machine called the CEK machine =-=[32]-=-; a simple machine inspired by the SECD machine but with roots in Reynolds’s work on definitional interpreters [32, Section 2] [61]. Several variants of the CEK machine have been presented [31]. One o... |

70 | Defunctionalization at work
- Danvy, Nielsen
- 2001
(Show Context)
Citation Context ...zed form The fused normalizer is not in defunctionalized form with respect to its stack. The characteristic of a data type in defunctionalized form is that it is consumed solely by its apply function =-=[26, 27]-=-. The stack, however, is consumed both in the two clauses of CM for abstractions, and in aux. We can combine these two dispatch sites into aux by changing the domain to contain a sum type: aux : Stack... |

69 | The Formal Semantics of Programming Languages. Foundation of Computing Series - Winskel - 1993 |

65 | A Functional Correspondence between Evaluators and Abstract Machines
- Ager, Biernacki, et al.
- 2003
(Show Context)
Citation Context ...nguage. The original specification is not properly tail-recursive [12] and Danvy et al. show that the dump component D (which is isomorphic to a stack of (S, E, C)-triples) is an unnecessary artifact =-=[3]-=-. Directly simplified or extended versions also exist. For example, without support for basic constants or with support for non-local control operators [3, 25]. Hannan and Miller define such a version... |

61 |
An Abstract Framework for Environment Machines
- Curien
- 1991
(Show Context)
Citation Context ...ution of such unrealized substitutions and (2) eventually realizing a substitution of a term for a variable and (3) removal of unneeded substitutions. Curien’s calculus of closures λρ The λρ-calculus =-=[15]-=- uses explicit substitution. A syntactic unit in the calculus essentially is the composition of a λ-term and a mapping from variables to (in general) syntactic units. Since Landin’s work on evaluation... |

59 | tail recursion and space efficiency
- Clinger
(Show Context)
Citation Context ...The SECD machine is mostly important because it is the first abstract machine defined as a definitional semantics for a programming language. The original specification is not properly tail-recursive =-=[12]-=- and Danvy et al. show that the dump component D (which is isomorphic to a stack of (S, E, C)-triples) is an unnecessary artifact [3]. Directly simplified or extended versions also exist. For example,... |

59 | From operational semantics to abstract machines
- Hannan, Miller
- 1992
(Show Context)
Citation Context ...sions also exist. For example, without support for basic constants or with support for non-local control operators [3, 25]. Hannan and Miller define such a version without support for basic functions =-=[39]-=-. That machine differs from the original version in a more subtle way: In the evaluation of applications the operator subexpression is evaluated before the operand subexpression resulting in left-to-r... |

56 |
Danvy and Andrzej Filinski. Abstracting control
- Olivier
- 1990
(Show Context)
Citation Context ...rom Section 10.2.3 can be transformed to direct style using the control delimiter reset (noted 〈·〉 in the machine below) to account for the three occurrences of the initialization of the continuation =-=[23]-=-. The types Fun and Thunk change to: Thunk = Index → Fun + ANFormdeB Fun = Index × Cont → Fun + ANFormdeB 116The resulting direct-style normalization function has no control effects. Therefore all th... |

55 | Continuation-based program transformation strategies
- Wand
- 1980
(Show Context)
Citation Context ...d Nielsen do not have the support for basic constants but their proof directly extends to cope with such constants 8 Such a stack of elementary contexts is also known as a data-structure continuation =-=[68]-=-. 64The evaluation function evalTLLF from page 55 is reformulated with an explicit use of decompose and plug: evalTLLF : Exp → Value evalTLLF e = iterate (decompose (e[•])) iterate : Value + Decomp →... |

54 |
with Julie Sussman: Structure and Interpretation of Computer Programs
- Abelson, Sussman
- 1985
(Show Context)
Citation Context ...osed of two terms in juxtaposition: applications. 1 1 Applications was originally called combinations. In 1975 Plotkin still used that term [59], and so did Abelson and Sussman (with Sussman) in 1985 =-=[1]-=-. 5The grammar is abstract in the sense that it does not define a language of character strings but a language of trees where internal nodes correspond to the use of either the abstraction construct ... |

39 |
The Calculi of λv-CS conversion: a syntactic theory of control and state in imperative higher order programming
- Felleisen
- 1987
(Show Context)
Citation Context ...K machine have been presented [31]. One of these variants is the CESK machine which was presented in Felleisen’s PhD-dissertation as a specification of the semantics of what he calls Idealized Scheme =-=[30]-=-. The added component S represents a store needed to model the language: Idealized Scheme is essentially applicative expressions extended with imperative constructs for side-effecting variables and a ... |

39 | Trampolined style
- Ganz, Friedman, et al.
- 1999
(Show Context)
Citation Context ...]) = iterate (refocus (e[s] e ′[s], E[]|)) iterate (q[s] l[s ′],E[]) = iterate (refocus ((capp (q, l))[s ′],E[])) 65Fusing iterate and refocus The auxiliary function iterate is a trampoline function =-=[35]-=- for refocus together with the contraction. Fusing iterate and refocus makes refocus call itself and therefore iterate superfluous: evalTLLF : Exp → Value evalTLLF e = refocus (e[•], []) refocus : Clo... |

39 | The call-by-need lambda calculus
- Maraist, Odersky, et al.
- 1998
(Show Context)
Citation Context ...cs gives rise to that abstract machine, using the syntactic correspondence. Other possibilities include applying the syntactic correspondence to Maraist, Odersky, and Wadler’s call-by-need λ-calculus =-=[54]-=- and to Ariola and Felleisen’s call-by-need calculus [6]. The result would be an abstract machine for call-by-need, a topic that has only been partially explored [4] [9, Section 9]. So, all in all, st... |

38 | A functional correspondence between monadic evaluators and abstract machines for languages with computational effects - Ager, Danvy, et al. - 2003 |

34 | A functional correspondence between call-by-need evaluators and lazy abstract machines
- Ager, Danvy, et al.
- 2004
(Show Context)
Citation Context ...series of one-step reductions on the term (λ(λ34(λ32))4)1 obtaining the corresponding normal form reads as follows (underlining the contacted redex at each step): (λ(λ3 4 (λ3 2)) 4) 1 →^s (λ(34(λ3 2))=-=[1, 4]-=-) 1 →^s (λ(34)[1, 4](λ3 2)[1, 4]) 1 →^s (λ(34)[1, 4](λ(32)[2, 4])) 1 →^s (λ(34)[1, 4](λ3[2, 4] 2[2, 4])) 1 →^s (λ(34)[1, 4](λ2 2[2, 4])) 1 →^s (λ(34)[1, 4](λ2 4[1, G 2])) 1 →^s (λ(34)[1, 4] (λ2 5)) 1 ... |

32 | A syntactic theory of dynamic binding - Moreau - 1998 |

26 | From Interpreter to Compiler and Virtual Machine: A Functional Derivation - Ager, Biernacki, et al. - 2003 |

24 |
Programming languages and lambda calculi. Unpublished lecture notes
- Felleisen, Flatt
(Show Context)
Citation Context ...achine [32]; a simple machine inspired by the SECD machine but with roots in Reynolds’s work on definitional interpreters [32, Section 2] [61]. Several variants of the CEK machine have been presented =-=[31]-=-. One of these variants is the CESK machine which was presented in Felleisen’s PhD-dissertation as a specification of the semantics of what he calls Idealized Scheme [30]. The added component S repres... |

24 |
Lambda Calculi: A Guide for Computer Scientists. Graduate Texts
- Hankin
- 1994
(Show Context)
Citation Context ...+ 1, g))) reindex (tt′,(j, g)) = (reindex (t, (j, g))) (reindex (t ′, (j, g))) 16The substitution function differs only notationally from definitions found in standard texts (e.g., Hankin’s textbook =-=[38]-=-). The contraction rule β deB states that the contractum of an application (λt) t ′ is t with de Bruijn index 1 mapping to t ′ . To realize the substitution, this mapping is distributed to the indices... |

21 | From reduction-based to reduction-free normalization
- Danvy
- 2008
(Show Context)
Citation Context ...the resulting value is obtained. In other words, a refocusing is performed between each actual reduction. Danvy and Nielsen have shown that an efficient representation of refocusing is already around =-=[21, 28]-=-, where the intermediate closure, which is present in a direct composition of decomposing and plugging, can be deforested. This deforestation eliminates two operations with complexity proportional to ... |

21 | On evaluation contexts, continuations, and the rest of the computation
- Danvy
- 2004
(Show Context)
Citation Context ... machine when applying a call-by-name-CPS transformation, 13 and on the other hand corresponds to the CEK machine when applying a callby-value-CPS transformation, when followed by defunctionalization =-=[22]-=-. Nothing changes with the introduction of basic constants. The interpreter for TLLF thus functionally corresponds to the abstract machine for TLLF specified on page 53. 5.4 Summary In this chapter we... |

21 | Thunks and the λ-calculus
- Hatcliff, Danvy
- 1997
(Show Context)
Citation Context ... that no basic constants or functional constants are included in the term language. Regularly since Landin’s work The mechanical evaluation of expressions [50], such constants are included in λ-terms =-=[33, 40, 59]-=-. Such an ‘impure’ λ-calculus is usually called an ‘applied’ λ-calculus [45, Section 4.7]. Untyped and typed calculi In the grammar of terms, no notion of type is included. The λ-calculus is sometimes... |

21 |
Action Semantics, volume 26 of Cambridge Tracts
- Mosses
- 1992
(Show Context)
Citation Context ...r, a formal specification of the semantics of a language is usually presented via a semantic artifact. The two main approaches result in a denotational semantics [64, 65] and an operational semantics =-=[56, 60]-=-, respectively. In the denotational approach the semantics is specified as a 46function mapping programs to their meaning, which might very well be a function of concepts like an environment, a store... |

21 | Definitional interpreters revisited - Reynolds - 1998 |

20 | A concrete framework for environment machines
- Biernacka, Danvy
(Show Context)
Citation Context ...losures. A formal definition of Curien’s λρ-calculus is omitted because a minimal extension of it is treated in Section 5.2.1. The extended calculus is the λ^ρ-calculus defined by Biernacka and Danvy =-=[8, 9]-=-. 3.3 The λv-calculus The λv-calculus, which is due to Plotkin [59], was defined with a special purpose that will become clear in later chapters. The term language Terms of the λv-calculus, as defined... |

20 |
An abstract machine for lambda-terms normalization
- Crégut
- 1990
(Show Context)
Citation Context ...e literature. Some other machines are Hannan and Miller’s CLS machine, the VEC machine, which was presented as an implementation for a denotational semantics [65], the never published Krivine machine =-=[13]-=-, and the CAM with origin in categorical combinators [16]. Abstract machines and virtual machines Ager et al. distinguish between abstract machines and virtual machines [2]. According to their definit... |

19 | From interpreter to logic engine by defunctionalization - Biernacki, Danvy - 2003 |

18 | A syntactic correspondence between context-sensitive calculi and abstract machines
- Biernacka, Danvy
- 2007
(Show Context)
Citation Context ...losures. A formal definition of Curien’s λρ-calculus is omitted because a minimal extension of it is treated in Section 5.2.1. The extended calculus is the λ^ρ-calculus defined by Biernacka and Danvy =-=[8, 9]-=-. 3.3 The λv-calculus The λv-calculus, which is due to Plotkin [59], was defined with a special purpose that will become clear in later chapters. The term language Terms of the λv-calculus, as defined... |

17 |
Essentials of Programming Languages, second edition
- Friedman, Wand, et al.
- 2001
(Show Context)
Citation Context ... is now standard to introduce various language constructs via definitional interpreters. For example, Friedman, Wand, and Haynes use Scheme [43] as metalanguage in Essentials of Programming Languages =-=[34]-=-. Danvy et al. have systematically investigated the transformations Reynolds employed. The research has among other things given rise to several papers on a derivational approach to the relationship b... |

15 |
Origins of recursive function theory
- Kleene
- 1981
(Show Context)
Citation Context ...�n�c starting from 〈�0�c, �0�c〉 is the predecessor of �n�c: �sub1�c := λn.�π2� (n (λp.〈�add1�c (�π1� p), �π1� p〉) 〈�0�c, �0�c〉) This definition of the predecessor for Church numerals is due to Kleene =-=[44]-=-. 3 By analogy with addition, subtraction is defined by iterating the simpler predecessor function: Because �sub1�c �0�c =β �0�c, 4 �sub�c := λn.λn ′ .n ′ �sub1�c n �sub�c �n�c �n ′ �c =β { �n − n ′ �... |

12 |
Refocusing in reduction semantics. Research Report BRICS
- Danvy, Nielsen
- 2004
(Show Context)
Citation Context ...ich syntactically takes the form of a redex without necessarily being an actual redex), and that the notions of reduction can be specified as a function. 7 In that respect we follow Danvy and Nielsen =-=[28]-=-. When contexts are defined like in Section 1.3, contexts are represented ‘outside-in’. As mentioned a context is a syntactic unit with one sub-unit replaced by a hole. Filling that hole consists of r... |

11 |
Strongly reducing variants of the Krivine abstract machine
- Crégut
(Show Context)
Citation Context ...consists of a driver loop and a weak machine, with the driver loop repeatedly instantiating the weak machine [13]. Crégut has recently superseded this normalizer with his definition of the KN-machine =-=[14]-=-. This machine takes the form of an abstract machine (Section 4.5.2). Roadmap In this chapter our starting point is Crégut’s KN-machine (Section 11.1). In previous chapters we have seen the value of h... |

11 |
to direct style. Science of Computer Programming
- Back
- 1994
(Show Context)
Citation Context ...S transformation to the interpreter. The left-inverses of CPS transformations maps programs in CPS into corresponding programs in direct style. Danvy has formulated these direct-style transformations =-=[19]-=-. 5.3.4 Defunctionalization/refunctionalization After the CPS transformation the interpreter is higher-order: continuations are functions from intermediate results to final answers. Reynolds introduce... |