Categorical Combinators, Sequential Algorithms, and Functional Programming

This book is a thoroughly revised edition of a monograph that presents an approach to the design and implementation of sequential programming languages based on the relationship between lambda-calculus and category theory. The foundations of a new "categorical" combinatory logic are laid down. Compilation and evaluation techniques are investigated. A simple abstract machine, called the Categorical Abstract Machine, is presented: it has served as the core of the implementation of the language CAML, of the ML family, developed at INRIA-Roquencourt and Ecole Normale Superieure, and first released in 1987. The main characteristics of this approach are conceptual simplicity and compactness, with bearings on portability, efficiency, and correctness proofs. A mathematical semantics of sequentiality is proposed, in which "sequential algorithms" rather than functions are used to interpret procedures. The theoretical investigation has led to the development of a programming language, CDSO, in which basic and functional types are not differentiated. The evaluation framework is a demand-driven data flow network. The model of sequential algorithms is fully abstract with respect to this language: two procedures have the same denotation if and only if they have the same behaviour. Background on full abstraction is given. The new edition covers new results, and introduces new connections, as suggested by the following non-exhaustive fist of keywords: confluence properties of categorical combinators, explicit substitutions, control operations, linear logic, geometry of interaction, strong stability.

[1]  Vladimir Yu. Sazonov Sequentially and parallelly computable functionals , 1975, Lambda-Calculus and Computer Science Theory.

[2]  Alley Stoughton,et al.  Parallel PCF has a unique extensional model , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[3]  Alley Stoughton Interdefinability of Parallel Operations in PCF , 1991, Theor. Comput. Sci..

[4]  Alley Stoughton,et al.  Equationally Fully Abstract Models of PCF , 1990, Mathematical Foundations of Programming Semantics.

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

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

[7]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[8]  Paul Taylor An algebraic approach to stable domains , 1990 .

[9]  Adam Obtulowicz,et al.  Functorial Semantics of the Type Free lambda-beta eta Calculus , 1977, FCT.

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

[11]  V. Yu. Sazonov Expressibility of functions in D. Scott's LCF language , 1976 .

[12]  D. A. Turner Another Algorithm for Bracket Abstraction , 1979, J. Symb. Log..

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

[14]  K. Mulmuley Full Abstraction and Semantic Equivalence , 1987 .

[15]  Gordon D. Plotkin,et al.  The category-theoretic solution of recursive domain equations , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[16]  Axel Poigné,et al.  Higher Order Data Structures: Cartesian Closure Versus Lambda-Calculus , 1984, STACS.

[17]  Christopher Strachey,et al.  Toward a mathematical semantics for computer languages , 1971 .

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

[19]  Dana S. Scott,et al.  Some Domain Theory and Denotational Semantics in Coq , 2009, TPHOLs.

[20]  Gordon D. Plotkin,et al.  A Powerdomain Construction , 1976, SIAM J. Comput..

[21]  G.D. Plotkin,et al.  LCF Considered as a Programming Language , 1977, Theor. Comput. Sci..

[22]  Adam Obtułowicz,et al.  Categorical, functorial and algebraic aspects of the type-free lambda calculus , 1982 .

[23]  Axel Poigné,et al.  On Specifications, Theories, and Models with Higher Types , 1986, Inf. Control..