An algebraic semantics of subobjects

Existing formalisms of inheritance are not sufficient to model the complexities of the kind of multiple inheritance exemplified in C++. Any satisfactory formalism must model the complicating effects of virtual and non-virtual base classes as well as virtual and non-virtual methods. By abstracting the implementational notion of a subobject and formalizing subobject selection, we develop a formalism to model this combination of features. Not intended as a formal semantics of C++, the resulting model should nevertheless provide an essential level of understanding for language theorists and implementors in their dealings with C++ and related languages.

[1]  Craig Schaffert,et al.  An introduction to Trellis/Owl , 1986, OOPLSA '86.

[2]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

[3]  Marie-Laure Mugnier,et al.  Monotonic conflict resolution mechanisms for inheritance , 1992, OOPSLA 1992.

[4]  David A. Moon Object-oriented programming with flavors , 1986, OOPSLA 1986.

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

[6]  Alan Borning,et al.  Multiple Inheritance in Smalltalk-BO , 1982, AAAI.

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

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

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

[10]  Daniel G. Bobrow,et al.  CommonLoops: merging Lisp and object-oriented programming , 1986, OOPLSA '86.

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

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

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

[14]  Craig Schaffert,et al.  An introduction to Trellis/Owl , 1986, OOPSLA 1986.

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

[16]  Thomas A. Cargill,et al.  Controversy: The Case Against Multiple Inheritance in C++ , 1991, Comput. Syst..

[17]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[18]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Inf. Comput..

[19]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and its Correctness , 1989, OOPSLA.

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

[21]  Daniel G. Bobrow,et al.  CommonLoops: Merging Lisp and Object-Oriented Programming , 1986, OOPSLA.

[22]  A. Snyder CommonObjects: an overview , 1986, OOPWORK '86.

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

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

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

[26]  Alan J. Perlis,et al.  Special Feature: Epigrams on programming , 1982, SIGP.

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

[28]  Alan J. Perlis,et al.  Epigrams on Programming. , 1982 .

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

[30]  David A. Moon,et al.  Object-oriented programming with flavors , 1986, OOPLSA '86.

[31]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and its Correctness , 1989, OOPSLA.

[32]  Jr. Guy L. Steele,et al.  Common LISP: the language (2nd ed.) , 1990 .

[33]  Brian A. Davey,et al.  An Introduction to Lattices and Order , 1989 .

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

[35]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

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

[37]  David S. Touretzky,et al.  The Mathematics of Inheritance Systems , 1984 .

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

[39]  Roland Ducournau,et al.  On Some Algorithms for Multiple Inheritance in Object-Oriented Programming , 1987, ECOOP.