Foundations of Object-Oriented Languages
by Bruce
ISBN: 9780262324748 | Copyright 2002
Instructor Requests
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) |
eTextbook
Go paperless today! Available online anytime, nothing to download or install.
Features
|