**Hardcover**|

**$95.00 Text**|

**£65.95**| ISBN: 9780262133210 | 868 pp. | 7.2 x 9.2 in | August 1996

## Instructor Resources

## Overview

Written for advanced undergraduate and beginning graduate students, *Foundations for Programming Languages* uses a series of typed lambda calculi to study the axiomatic, operational, and denotational semantics of sequential programming languages. Later chapters are devoted to progressively more sophisticated type systems.

Compared to other texts on the subject, *Foundations for Programming Languages* is distinguished primarily by its inclusion of material on universal algebra and algebraic data types, imperative languages and Floyd-Hoare logic, and advanced chapters on polymorphism and modules, subtyping and object-oriented concepts, and type inference. The book is mathematically oriented but includes discussion, motivation, and examples that make the material accessible to students specializing in software systems, theoretical computer science, or mathematical logic.

*Foundations for Programming Languages* is suitable as a reference for professionals concerned with programming languages, software validation or verification, and programming, including those working with software modules or object-oriented programming.

*Foundations of Computing series*

## Endorsements

"Programming languages embody the pragmatics of designing software systems,and also the mathematical concepts which underlie them. Anyone who wantsto know how, for example, object-oriented programming rests upon a firmfoundation in logic should read this book. It guides one surefootedlythrough the rich variety of basic programming concepts developed over thepast forty years."

—**Robin Milner**, Professor of Computer Science, The ComputerLaboratory, Cambridge University

"Programming languages need not be designed in an intellectual vacuum;John Mitchell's book provides an extensive analysis of the fundamental notionsunderlying programming constructs. A basic grasp of this material is essentialfor the understanding, comparative analysis, and design of programminglanguages."

—**Luca Cardelli**, Digital Equipment Corporation