Bertrand Meyer, ISE Inc., Santa Barbara (California)
805-685-1006, fax 805-685-6869,
<[email protected]>
Web home page: http://www.eiffel.com
ftp://eiffel.com
The book is an introduction to the theoretical aspects of programming and programming languages, using only simple mathematics and meant for practicing programmers. It is regularly used as a textbook for both undergraduate and graduate courses. A translation also exists in French (Introduction a la Theorie des Langages de Programmation, InterEditions, Paris, 1992, ISBN 2 7296 0416 2).
Here is the table of contents (from the English-language edition, "Introduction to the Theory of Programming Languages", Prentice Hall, second printing, 1991; ISBN 0-13-498510-9 hardcover, 0-13-498502-8 paperback):
Preface Chapter 1: Basic concepts. Chapter 2: Mathematical Background. (Propositional and predicate calculus,sets, relations, functions, higher-level functionals, structural induction.) Chapter 3: Syntax. (Covers abstract and concrete syntax and applications to language design.) Chapter 4: Semantics: The Main Approaches (Introduces attribute/affix grammars, translational semantics, operational semantics, denotational semantics, axiomatic semantics.) Chapter 5: Lambda Calculus (Including contraction, freedom and bondage, typed lambda calculus, self-application.) Chapter 6: Denotational Semantics: Fundamentals (Static and dynamic semantics, expressions, instructions - uses elementary set theory and partial functions rather than special domains and values.) Chapter 7: Denotational Semantics: language features (Covers records, arrays, pointers, I/O, block structure, routines, with a peek at classes and inheritance.) Chapter 8: The Mathematics of Recursion. (An in-depth look at the theory behind recursive definitions and recursive computation, fixpoints etc.) Chapter 9: Axiomatic Semantics. (Hoare semantics, weakest preconditions, program proving, non-determinism, routines and recursion.) Chapter 10: The consistency of Semantic Definitions. (Compares denotational and axiomatic specifications and proves their equivalence for an example programming language.) Bibliography (about 110 entries).