Foundations of Object-Oriented Programming Languages:
Types and Semantics

Kim B. Bruce

The MIT Press
Massachusetts Institute of Technology
Cambridge, Massachusetts 02142
ISBN 0-262-02523-X

From the publisher:

"In recent years, object-oriented programming has emerged as the dominant computer programming style, and object-oriented languages such as C++ and Java enjoy wide use in academia and industry. This text explores the formal underpinnings of object-oriented languages to help the reader understand the fundamental concepts of these languages and the design decisions behind them.

The text begins by analyzing existing object-oriented languages, paying special attention to their type systems and impediments to expressiveness. It then examines two key features: subtypes and subclasses. After a brief introduction to the lambda calculus, it presents a prototypical object-oriented language, SOOL, with a simple type system similar to those of class-based object-oriented languages in common use. The text offers proof that the type system is sound by showing that the semantics preserves typing information. It concludes with a discussion of desirable features, such as parametric polymorphism and a MyType construct, that are not yet included in most statically typed object-oriented languages."

Excerpts from Foundations of Object-Oriented Languages

The following sample chapters are available in pdf format:

Typos and Corrections

A list of errata is now available. Please send corrections to Please be as explicit as possible as to the location of the error and the correction. I appreciate your help in making this book as useful as possible.


This book may be ordered from, Barnes and Noble, MIT Press, or most other on-line or retail bookstores.

Kim Bruce's home page