Results 1 
9 of
9
The Impact of the Lambda Calculus in Logic and Computer Science
 Bulletin of Symbolic Logic
, 1997
"... One of the most important contributions of A. Church to logic is his invention of the lambda calculus. We present the genesis of this theory and its two major areas of application: the representation of computations and the resulting functional programming languages on the one hand and the represent ..."
Abstract

Cited by 23 (0 self)
 Add to MetaCart
One of the most important contributions of A. Church to logic is his invention of the lambda calculus. We present the genesis of this theory and its two major areas of application: the representation of computations and the resulting functional programming languages on the one hand and the representation of reasoning and the resulting systems of computer mathematics on the other hand. Acknowledgement. The following persons provided help in various ways. Erik Barendsen, Jon Barwise, Johan van Benthem, Andreas Blass, Olivier Danvy, Wil Dekkers, Marko van Eekelen, Sol Feferman, Andrzej Filinski, Twan Laan, Jan Kuper, Pierre Lescanne, Hans Mooij, Robert Maron, Rinus Plasmeijer, Randy Pollack, Kristoffer Rose, Richard Shore, Rick Statman and Simon Thompson. Partial support came from the European HCM project Typed lambda calculus (CHRXCT920046), the Esprit Working Group Types (21900) and the Dutch NWO project WINST (612316607). 1. Introduction This paper is written to honor Church's gr...
A Conflict Between CallbyNeed Computation and Parallelism
, 1994
"... . In functional language implementation, there is a folklore belief that there is a conflict between implementing callbyneed semantics and parallel evaluation. In this note we illustrate this by proving that reduction algorithms of a certain general and commonly used form which give callbyneed ..."
Abstract

Cited by 15 (0 self)
 Add to MetaCart
. In functional language implementation, there is a folklore belief that there is a conflict between implementing callbyneed semantics and parallel evaluation. In this note we illustrate this by proving that reduction algorithms of a certain general and commonly used form which give callbyneed semantics offer very little parallelism. The analysis of lazy patternmatching which leads to the above result also suggests an efficient sequential algorithm for the evaluation of a class functional programs satisfying certain constraints, an algorithm which respects the mathematical semantics of the program considered as a term rewrite system. 1 Introduction Huet and L'evy [Huet and L'evy, 1979, Huet and L'evy, 1991] have considered the problem of call by need computation of normal forms in orthogonal term rewrite systems. Call by need here means that no redex is ever reduced unless it must be reduced in order to compute the normal form. In general, such a redex cannot be effectiv...
Efficient Interpretation by Transforming Data Types and Patterns to Functions
 In Trends in Functional Programming, volume 7. Intellect
, 2007
"... In this paper we present the stepwise construction of an efficient interpreter for lazy functional programming languages like Haskell and Clean. The interpreter is realized by first transforming the source language to the intermediate language SAPL (Simple Application Programming Language) consistin ..."
Abstract

Cited by 11 (4 self)
 Add to MetaCart
In this paper we present the stepwise construction of an efficient interpreter for lazy functional programming languages like Haskell and Clean. The interpreter is realized by first transforming the source language to the intermediate language SAPL (Simple Application Programming Language) consisting of pure functions only. During this transformation algebraic data types and patternbased function definitions are mapped to functions. This eliminates the need for constructs for Algebraic Data Types and Pattern Matching in SAPL. For SAPL a simple and elegant interpreter is constructed using straightforward graph reduction techniques. This interpreter can be considered as a prototype implementation of lazy functional programming languages. Using abstract interpretation techniques the interpreter is optimised. The performance of the resulting interpreter turns out to be very competitive in a comparison with other interpreters like Hugs, Helium, GHCi and Amanda for a number benchmarks. For some benchmarks the interpreter even rivals the speed of the GHC compiler. Due to its simplicity and the stepwise construction this implementation is an ideal subject for introduction courses on implementation aspects of lazy functional programming languages. 1
Separability and Translatability of Sequential Term Rewrite Systems Into the Lambda Calculus
, 2001
"... Orthogonal term rewrite systems do not currently have any semantics other than syntacticallybased ones such as term models and event structures. For a functional language which combines lambda calculus with term rewriting, a semantics is most easily given by translating the rewrite rules into lambd ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Orthogonal term rewrite systems do not currently have any semantics other than syntacticallybased ones such as term models and event structures. For a functional language which combines lambda calculus with term rewriting, a semantics is most easily given by translating the rewrite rules into lambda calculus and then using wellunderstood semantics for the lambda calculus. We therefore study in this paper the question of which classes of TRS do or do not have such translations. We demonstrate by construction that forward branching orthogonal term rewrite systems are translatable into the lambda calculus. The translation satis es some strong properties concerning preservation of equality and of some inequalities. We prove that the forward branching systems are exactly the systems permitting such a translation which is, in a precise sense, uniform in the righthand sides. Connections are drawn between translatability, sequentiality and separability properties. Simple syntactic proofs are given of the nontranslatability of a class of TRSs, including Berry's F and several variants of it.
Typed SelfInterpretation by Pattern Matching
"... Selfinterpreters can be roughly divided into two sorts: selfrecognisers that recover the input program from a canonical representation, and selfenactors that execute the input program. Major progress for staticallytyped languages was achieved in 2009 by Rendel, Ostermann, and Hofer who presented ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Selfinterpreters can be roughly divided into two sorts: selfrecognisers that recover the input program from a canonical representation, and selfenactors that execute the input program. Major progress for staticallytyped languages was achieved in 2009 by Rendel, Ostermann, and Hofer who presented the first typed selfrecogniser that allows representations of different terms to have different types. A key feature of their type system is a type:type rule that renders the kind system of their language inconsistent. In this paper we present the first staticallytyped language that not only allows representations of different terms to have different types, and supports a selfrecogniser, but also supports a selfenactor. Our language is a factorisation calculus in the style of Jay and GivenWilson, a combinatory calculus with a factorisation operator that is powerful enough to support the patternmatching functions necessary for a selfinterpreter. This allows us to avoid a type:type rule. Indeed, the types of System F are sufficient. We have implemented our approach and our experiments support the theory.
The RTA list of open problems
 Handbook of Automated Reasoning
"... The RTA list of open problems 1 The RTA list of open problems summarizes open problems in the field of the International Conference on Rewriting Techniques and Applications (RTA). For the RTA 2002 conference, the topics of RTA were given as • Applications: case studies; rulebased programming; symbo ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
The RTA list of open problems 1 The RTA list of open problems summarizes open problems in the field of the International Conference on Rewriting Techniques and Applications (RTA). For the RTA 2002 conference, the topics of RTA were given as • Applications: case studies; rulebased programming; symbolic and algebraic computation; theorem proving; functional and logic programming; proof checking. • Foundations: matching and unification; completion techniques; strategies; constraint solving; explicit substitutions.
A Staging Calculus and its Application to the Verification of Translators
, 1993
"... We develop a calculus in which the computation steps required to execute a computer program can be separated into discrete stages. The calculus, denoted 2 , is embedded within the pure untyped calculus. The main result of the paper is a characterization of sucient conditions for conuence for terms ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We develop a calculus in which the computation steps required to execute a computer program can be separated into discrete stages. The calculus, denoted 2 , is embedded within the pure untyped calculus. The main result of the paper is a characterization of sucient conditions for conuence for terms in the calculus. The condition can be taken as a correctness criterion for translators that perform reductions in one stage leaving residual redexes over for subsequent computation stages. As an application of the theory, we verify the correctness of a macro expansion algorithm. The expansion algorithm is of some interest in its own right since it solves the problem of desired variable capture using only the familiar capture avoiding substitutions. 1 Introduction The calculus is widely used as a metalanguage for programming language semantics because most of the complexities of real programming languages can be modeled by relatively simple and wellunderstood aspects of the calculus. ...
Separability and Translatability of Sequential Term Rewrite Systems Into the Lambda Calculus
"... this paper the question of which ..."