Foundations of Object-Oriented Languages

by Bruce

ISBN: 9780262525732 | Copyright 2002

Click here to preview

Instructor Requests

Print Desk Copy Ancillaries
Tabs

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.

Expand/Collapse All
List of Figures (pg. xi)
Preface (pg. xv)
Part I: Type Problems in Object-Oriented Languages (pg. 1)
1 Introduction (pg. 3)
2 Fundamental Concepts of Object-Oriented Languages (pg. 17)
3 Type Problems in Object-Oriented Languages (pg. 33)
4 Adding Expressiveness to Object-Oriented Languages (pg. 49)
5 Understanding Subtypes (pg. 71)
6 Type Restrictions on Subclasses (pg. 89)
7 Varieties of Object-Oriented Programming Languages (pg. 95)
Historical Notes and References for Section I (pg. 113)
Part II: Foundations: The Lambda Calculus (pg. 117)
8 Formal Language Descriptions and the Lambda Calculus (pg. 119)
9 The Polymorphic Lambda Calculus (pg. 141)
Historical Notes and References for Section II (pg. 167)
Part III: Formal Descriptions of Object-Oriented Languages (pg. 171)
10 SOOL, a Simple Object-Oriented Language (pg. 173)
11 A Simple Translational Semantics of Objects and Classes (pg. 201)
12 Improved Semantics for Classes (pg. 225)
13 SOOL’s Type System Is Safe (and Sound) (pg. 239)
14 Completing SOOL: super, nil, Information Hiding, and Multiple Inheritance (pg. 263)
Historical Notes and References for Section III (pg. 283)
Part IV: Extending Simple Object-Oriented Languages (pg. 289)
15 Adding Bounded Polymorphism to SOOL (pg. 291)
16 Adding MyType to Object-Oriented Programming Languages (pg. 299)
17 Match-Bounded Polymorphism (pg. 331)
18 Simplifying: Dropping Subtyping for Matching (pg. 349)
Historical Notes and References for Section IV (pg. 363)
Bibliography (pg. 367)
Index (pg. 379)