did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780262025232

Foundations of Object-Oriented Languages : Types and Semantics

by
  • ISBN13:

    9780262025232

  • ISBN10:

    026202523X

  • Format: Hardcover
  • Copyright: 2002-03-21
  • Publisher: Mit Pr
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $50.00

Summary

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.

Table of Contents

List of Figures
xi
Preface xv
I Type Problems in Object-Oriented Languages 1(116)
Introduction
3(14)
Type systems in programming languages
4(2)
Type checking and strongly typed languages
6(6)
Focus on statically typed class-based languages
12(1)
Foundations: A look ahead
13(4)
Fundamental Concepts of Object-Oriented Languages
17(16)
Objects, classes, and object types
17(5)
Subclasses and inheritance
22(2)
Subtypes
24(2)
Covariant and contravariant changes in types
26(1)
Overloading versus overriding methods
27(5)
Summary
32(1)
Type Problems in Object-Oriented Languages
33(16)
Type checking object-oriented languages is difficult
33(2)
Simple type systems are lacking in flexibility
35(13)
Summary of typing problems
48(1)
Adding Expressiveness to Object-Oriented Languages
49(22)
GJ
49(11)
Even more flexible typing with Eiffel
60(9)
Summary
69(2)
Understanding Subtypes
71(18)
Subtyping for non-object types
72(11)
Object types
83(1)
Subtyping for class types
84(2)
Summary
86(3)
Type Restrictions on Subclasses
89(6)
Allowable changes to method types
89(2)
Instance variable types invariant in subclasses
91(1)
Changing visibility
92(1)
Summary
93(2)
Varieties of Object-Oriented Programming Languages
95(22)
Multi-methods vs. object-based vs. class-based languages
95(8)
Well-known object-oriented languages
103(8)
Summary
111(6)
Historical Notes and References for Section I
113(4)
II Foundations: The Lambda Calculus 117(54)
Formal Language Descriptions and the Lambda Calculus
119(22)
The simply-typed lambda calculus
120(12)
Adding pairs, sums, records, and references
132(8)
Summary
140(1)
The Polymorphic Lambda Calculus
141(30)
Parameterized types and polymorphism
141(6)
Recursive expressions and types
147(4)
Information hiding and existential types
151(5)
Adding subtypes to the polymorphic lambda calculus
156(9)
Summary
165(6)
Historical Notes and References for Section II
167(4)
III Formal Descriptions of Object-Oriented Languages 171(118)
SOOL, a Simple Object-Oriented Language
173(28)
Informal description and example
173(3)
Syntax and type-checking rules
176(24)
Summary
200(1)
A Simple Translational Semantics of Objects and Classes
201(24)
Representing objects at runtime
201(2)
Modeling SOOL types in ΛP<
203(4)
Modeling SOOL expressions in ΛP<:
207(5)
Modeling classes - first try
212(6)
Problems with modeling subclasses
218(5)
Summary
223(2)
Improved Semantics for Classes
225(14)
(Re-)Defining classes
225(7)
A correct subclass encoding
232(1)
Summary and a look ahead
233(6)
SOOL's Type System Is Safe (and Sound)
239(24)
The translation of SOOL to ΛP<: is sound
239(16)
The translation is well defined
255(3)
SOOL is type safe
258(2)
Errors
260(2)
Summary
262(1)
Completing SOOL: super, nil, Information Hiding, and Multiple Inheritance
263(26)
Using methods from superclasses
263(3)
Translating nil
266(5)
A complication with self
271(1)
Finer control over information hiding
272(3)
Multiple inheritance
275(4)
Summary
279(10)
Historical Notes and References for Section III
283(6)
IV Extending Simple Object-Oriented Languages 289(78)
Adding Bounded Polymorphism to SOOL
291(8)
Introducing PSOOL
291(5)
Translational semantics of PSOOL
296(1)
Summary
297(2)
Adding MyType to Object-Oriented Programming Languages
299(32)
Typing self with MyType
300(9)
MOOL: Adding MyType to SOOL
309(10)
Translational semantics of MOOL
319(3)
Soundness of translation for MOOL
322(8)
Summary
330(1)
Match-Bounded Polymorphism
331(18)
Benefits of match-bounded polymorphism
331(2)
Introducing PMOOL
333(1)
Examples and comparison with F-bounded polymorphism
334(1)
Translational semantics of PMOOL
335(7)
Soundness of the translation of PMOOL
342(5)
Summary
347(2)
Simplifying: Dropping Subtyping for Matching
349(18)
Can we drop subtyping?
349(3)
Introducing hash types
352(4)
Type-checking rules
356(4)
An informal semantics of hash types
360(1)
Summary
361(6)
Historical Notes and References for Section IV
363(4)
Bibliography 367(12)
Index 379

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program