Brief: Introduction to the Theory of Programming Languages

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).

Reviews.
[email protected]
Last modified: Thu May 17 22:44:52 EETDST 2001