Functional Programming and Lambda Calculus

Publisher Summary This chapter discusses lambda calculus and explains how this system is able to capture all computable functions. Once a reduction strategy is chosen, the behavior of a term is determined. This gives a so-called operational semantics. The chapter presents the meaning of a λ -term, which is given by translating it to a set [M]. This set is an element of a mathematical structure in which application and abstraction are well-defined operations. In this way, a so-called denotational semantics is obtained.

[1]  S. Kleene $\lambda$-definability and recursiveness , 1936 .

[2]  P. J. Landin The Mechanical Evaluation of Expressions , 1964, Comput. J..

[3]  E. Moggi The partial lambda calculus , 1988 .

[4]  T. B. Steel,et al.  Introduction to the CUCH , 1975 .

[5]  Alan M. Turing,et al.  Computability and λ-definability , 1937, Journal of Symbolic Logic.

[6]  Ketan Mulmuley,et al.  Fully Abstract Submodels of Typed Lambda Calculi , 1986, J. Comput. Syst. Sci..

[7]  Mariangiola Dezani-Ciancaglini,et al.  A filter lambda model and the completeness of type assignment , 1983, Journal of Symbolic Logic.

[8]  P. J. Landin,et al.  Correspondence between ALGOL 60 and Church's Lambda-notation , 1965, Commun. ACM.

[9]  R. A. G. Seely,et al.  Categorical semantics for higher order polymorphic lambda calculus , 1987, Journal of Symbolic Logic.

[10]  M. Schönfinkel Über die Bausteine der mathematischen Logik , 1924 .

[11]  R. Seely,et al.  Locally cartesian closed categories and type theory , 1984, Mathematical Proceedings of the Cambridge Philosophical Society.

[12]  Paul Hudak,et al.  Serial Combinators: "Optimal" Grains of Parallelism , 1985, FPCA.

[13]  Robin Milner,et al.  Fully Abstract Models of Typed lambda-Calculi , 1977, Theor. Comput. Sci..

[14]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[15]  H. Friedman Equality between functionals , 1975 .

[16]  R. Hindley The Principal Type-Scheme of an Object in Combinatory Logic , 1969 .

[17]  S. Kleene,et al.  λ-Definability and Recursiveness. , 1937 .

[18]  W. Tait A realizability interpretation of the theory of species , 1975 .

[19]  Thomas Johnsson,et al.  Efficient compilation of lazy evaluation , 1984, SIGPLAN '84.

[20]  C.-H. Luke Ong The Lazy Lambda Calculus : an investigation into the foundations of functional programming , 1988 .

[21]  Kim B. Bruce,et al.  The Semantics of Second Order Polymorphic Lambda Calculus , 1984, Semantics of Data Types.

[22]  D. A. Turner The semantic elegance of applicative languages , 1981, FPCA '81.

[23]  Dana S. Scott,et al.  Data Types as Lattices , 1976, SIAM J. Comput..

[24]  Mario Coppo,et al.  A Completeness Theorem for Recursively Defined Types , 1985, ICALP.

[25]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[26]  Daniel Leivant,et al.  The Expressiveness of Simple and Second-Order Type Structures , 1983, JACM.

[27]  A. Church An Unsolvable Problem of Elementary Number Theory , 1936 .

[28]  John C. Reynolds,et al.  Towards a theory of type structure , 1974, Symposium on Programming.

[29]  D. A. Turner,et al.  A new implementation technique for applicative languages , 1979, Softw. Pract. Exp..

[30]  Marko C. J. D. van Eekelen,et al.  Term Graph Rewriting , 1987, PARLE.

[31]  Marko C. J. D. van Eekelen,et al.  CLEAN: A language for functional graph writing , 1987, FPCA.

[32]  Alan Mycroft,et al.  Abstract interpretation and optimising transformations for applicative programs , 1982 .

[33]  G. Huet,et al.  Equations and rewrite rules: a survey , 1980 .

[34]  Lennart Augustsson,et al.  A compiler for lazy ML , 1984, LFP '84.

[35]  de Ng Dick Bruijn,et al.  A survey of the project Automath , 1980 .

[36]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[37]  Chris Hankin,et al.  Strictness Analysis for Higher-Order Functions , 1986, Sci. Comput. Program..

[38]  Thierry Coquand,et al.  Constructions: A Higher Order Proof System for Mechanizing Mathematics , 1985, European Conference on Computer Algebra.

[39]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

[40]  Gordon D. Plotkin,et al.  An ideal model for recursive polymorphic types , 1984, Inf. Control..

[41]  P. J. Landin,et al.  The next 700 programming languages , 1966, CACM.

[42]  P. J. Landin A λ-CALCULUS APPROACH , 1966 .

[43]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[44]  H. B. Curry Modified basic functionality in combinatory logic , 1969 .

[45]  A. Turing On Computable Numbers, with an Application to the Entscheidungsproblem. , 1937 .

[46]  E. Engeler Algebras and combinators , 1981 .

[47]  Hendrik Pieter Barendregt,et al.  Functional Programming and the Language TALE , 1986, Current Trends in Concurrency.

[48]  Hendrik Pieter Barendregt,et al.  Needed Reduction and Spine Strategies for the Lambda Calculus , 1987, Inf. Comput..

[49]  Jean-Yves Girard,et al.  The System F of Variable Types, Fifteen Years Later , 1986, Theor. Comput. Sci..

[50]  James H. Morris,et al.  Lambda-calculus models of programming languages. , 1969 .

[51]  Corrado Böhm,et al.  Automatic Synthesis of Typed Lambda-Programs on Term Algebras , 1985, Theor. Comput. Sci..