Modeling Subobject-based Inheritance

A model of subobjects and subobject selection gives us a concise expression of key semantic relationships in a variety of inheritance-based languages. Subobjects and their selection have been difficult to reason about explicitly because they are not explicit in the languages that support them. The goal of this paper is to present a relatively simple calculus to describe subobjects and subobject selection explicitly. Rather than present any deep theorems here, we develop a general calculus that can be used to explore the design of inheritance systems.

[1]  Kristen Nygaard,et al.  SIMULA: an ALGOL-based simulation language , 1966, CACM.

[2]  Daniel Joseph Carnese,et al.  Multiple inheritance in contemporary programming languages , 1984 .

[3]  Stein Krogdahl Multiple inheritance in Simula-like languages , 1985, BIT Comput. Sci. Sect..

[4]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[5]  Jørgen Lindskov Knudsen Name Collision in Multiple Classification Hierarchies , 1988, ECOOP.

[6]  Uday S. Reddy,et al.  Objects as closures: abstract semantics of object-oriented languages , 1988, LISP and Functional Programming.

[7]  Samuel N. Kamin Inheritance in smalltalk-80: a denotational definition , 1988, POPL '88.

[8]  Jens Palsberg,et al.  A Denotational Semantics af Inheritance and its Correctness , 1989 .

[9]  J. Palsberg,et al.  A denotational semantics of inheritance and its correctness , 1989, OOPSLA '89.

[10]  Bjarne Stroustrup,et al.  Multiple Inheritance for C++ , 1989, Comput. Syst..

[11]  William R. Cook,et al.  A denotational semantics of inheritance , 1989 .

[12]  Markku Sakkinen,et al.  Disciplined Inheritance , 1989, ECOOP.

[13]  Bjarne Stroustrup,et al.  The Annotated C++ Reference Manual , 1990 .

[14]  Jean-Marc Geib,et al.  The point of view notion for multiple inheritance , 1990, OOPSLA/ECOOP '90.

[15]  CarréBernard,et al.  The point of view notion for multiple inheritance , 1990 .

[16]  Alan Snyder,et al.  Modeling the C++ Object Model, An Application of an Abstract Object Model , 1991, ECOOP.

[17]  B. Pierce Programming with intersection types and bounded polymorphism , 1992 .

[18]  Markku Sakkinen,et al.  A Critique of the Inheritance Principles of C++ , 1992, Comput. Syst..

[19]  Yuri Gurevich,et al.  The Semantics of the C Programming Language , 1992, CSL.

[20]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[21]  Richard P. Gabriel,et al.  Gregor Kiczales, Jim des Rivières, and Daniel G. Bobrow, The Art of the Metaobject Protocol , 1993, Artif. Intell..

[22]  Charles Wallace,et al.  The semantics of the C++ programming language , 1995, Specification and validation methods.

[23]  Marie-Laure Mugnier,et al.  Proposal for a Monotonic Multiple Inheritance Linearization , 1994, OOPSLA.

[24]  Jonathan G. Rossie,et al.  An algebraic semantics of subobjects , 1995, OOPSLA.

[25]  E. Toth Reply to , 1996 .

[26]  Andrew Shalit,et al.  The Dylan Reference Manual , 1996 .