Procedural languages are generally well understood and their formal foundations cast in the forms of various lambda-calculi. For object- oriented languages however the situation is not as clear-cut. In this book the authors propose and develop a different approach by developing object calculi in which objects are treated as primitives. Using object calculi,the authors are able to explain both the semantics of objects and their typing rules and demonstrate how to develop all of the most important concepts of object-oriented programming languages: self, dynamic dispatch, classes, inheritance, protected and private methods, prototyping, subtyping, covariance and contravariance, and method specialization. Many researchers and graduate students will find this an important development of the underpinnings of object-oriented programming.
Author(s): MartÃn Abadi, Luca Cardelli
Series: Monographs in Computer Science
Publisher: Springer
Year: 1996
Language: English
Pages: 412
Tags: Programming Languages, Compilers, Interpreters
Front Matter....Pages i-xiii
Prologue....Pages 1-4
Front Matter....Pages 5-5
Object Orientation....Pages 7-10
Class-Based Languages....Pages 11-24
Advanced Class-Based Features....Pages 25-33
Object-Based Languages....Pages 35-49
Modeling Object-Oriented Languages....Pages 51-54
Front Matter....Pages 55-55
Untyped Calculi....Pages 57-78
First-Order Calculi....Pages 79-92
Subtyping....Pages 93-112
Recursion....Pages 113-128
Untyped Imperative Calculi....Pages 129-139
First-Order Imperative Calculi....Pages 141-152
A First-Order Language....Pages 153-165
Front Matter....Pages 167-167
Second-Order Calculi....Pages 169-184
A Semantics....Pages 185-199
Definable Covariant Self Types....Pages 201-219
Primitive Covariant Self Types....Pages 221-240
Imperative Calculi with Self Types....Pages 241-255
Interpretations of Object Calculi....Pages 257-272
A Second-Order Language....Pages 273-283
Front Matter....Pages 285-285
A Higher-Order Calculus....Pages 287-304
A Language with Matching....Pages 305-324
Epilogue....Pages 325-326
Back Matter....Pages 327-396