| Preface | |
| Pt. 1 | Functions and Foundations | |
| 1 | Introduction | 3 |
| 2 | Computability | 10 |
| 3 | Lisp: Functions, Recursion, and Lists | 18 |
| 4 | Fundamentals | 48 |
| Pt. 2 | Procedures, Types, Memory Management, and Control | |
| 5 | The Algol Family and ML | 93 |
| 6 | Type Systems and Type Inference | 129 |
| 7 | Scope, Functions, and Storage Management | 162 |
| 8 | Control in Sequential Languages | 204 |
| Pt. 3 | Modularity, Abstraction, and Object-Oriented Programming | |
| 9 | Data Abstraction and Modularity | 235 |
| 10 | Concepts in Object-Oriented Languages | 277 |
| 11 | History of Objects: Simula and Smalltalk | 300 |
| 12 | Objects and Run-Time Efficiency: C++ | 337 |
| 13 | Portability and Safety: Java | 384 |
| Pt. 4 | Concurrency and Logic Programming | |
| 14 | Concurrent and Distributed Programming | 431 |
| 15 | The Logic Programming Paradigm and Prolog | 475 |
| App. A | Additional Program Examples | 509 |
| Glossary | 521 |
| Index | 525 |