A Theory of ObjectsSpringer Science & Business Media, 8 вер. 2012 р. - 396 стор. 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. |
Зміст
2 | |
5 | |
10 | |
ClassBased Languages | 11 |
Subtyping | 13 |
Advanced ClassBased Features | 25 |
Part III | 33 |
ObjectBased Languages | 35 |
Imperative Calculi with Self Types | 241 |
Interpretations of Object Calculi | 257 |
A SecondOrder Language | 273 |
A HigherOrder Calculus | 287 |
ObjectBased Languages | 305 |
EPILOGUE | 325 |
A Fragments 329 | 328 |
B Systems | 337 |
Untyped Calculi | 57 |
Recursion | 113 |
13 | 167 |
17 | 185 |
Part III | 201 |
Primitive Covariant Self Types 221 | 220 |
LIST OF FIGURES | 362 |
LIST OF NOTATIONS | 371 |
LIST OF LANGUAGES | 381 |
391 | |
Інші видання - Показати все
Загальні терміни та фрази
abstraction attributes backup binary relations bound C-object Chapter class type class-based languages Class(A cloning components construct contents contravariant covariant CUPER define definition delegation derivable distinct dynamic dynamic dispatch embedding encoding equational theory Eval example field update first-order FOb₁ function types hence imperative induction hypothesis inheritance InstanceTypeOf(c Integer interpretation invariant judgment Lemma method invocation method lookup method suites method update MinMax Modula-3 mv_x notation Ob₁ object calculi object types object-based languages object-oriented languages object-oriented programming obtain operational semantics override P₁ parameter pointClass pre-methods primitive proof properties Proposition prototype-based languages quantifiers ReCell record recursive types result type rule Val s.contents Section self-application self.backup self.contents Simula store type structural structural subtyping Sub Object subclass subject reduction subsumption superclass syntax tion traits translation type variable typecase typing rules universal quantifiers untyped Val Object Val Select Val Update variance annotations Viel..n wrap(Self