Texts in Theoretical Computer Science, An EATCS Series.
I. Syntax --; 1. The Parametric?-Calculus --; 2. The Call-by-Name?-Calculus --; 3. The Call-by-Value?-Calculus --; 4. Further Reading --; II. Operational Semantics --; 5. Parametric Operational Semantics --; 6. Call-by-Name Operational Semantics --; 7. Call-by-Value Operational Semantics --; 8. Operational Extensionality --; 9. Further Reading --; III. Denotational Semantics --; 10.??-Models --; 11. Call-by-Name Denotational Semantics --; 12. Call-by-Value Denotational Semantics --; 13. Filter??-Models and Domains --; 14. Further Reading --; IV. Computational Power --; 15. Preliminaries --; 16. Representing Functions.
The parametric lambda calculus is a metamodel for reasoning about various kinds of computations. Its syntactic definition is based on the notion of "sets of input values", and different lambda calculi can be obtained from it by instantiating such sets in suitable ways. The parametric lambda calculus is used as a tool for presenting in a uniform way basic notions of programming languages, and for studying with a uniform approach some lambda calculi modeling different kinds of computations, such as call-by-name, both in its lazy and non-lazy versions, and call-by-value. The parametric presentation allows us both to prove in one step all the fundamental properties of different calculi, and to compare them with each other. The book includes some classical results in the field of lambda calculi, but completely rephrased using the parametric approach, together with some new results. The lambda calculi are presented from a computer science viewpoint, with particular emphasis on their semantics, both operational and denotational. This book is dedicated to researchers, and can be used as a textbook for masters or Ph. D. courses on the foundations of computer science.