A denotational semantics of inheritance and its correctness

This paper presents a denotational model of inheritance. The model is based on an intuitive motivation of the purpose of inheritance. The correctness of the model is demonstrated by proving it equivalent to an operational semantics of inheritance based upon the method-lookup algorithm of object-oriented languages. Although it was originally developed to explain inheritance in object-oriented languages, the model shows that inheritance is a general mechanism that may be applied to any form of recursive definition.

[1]  Siau-Cheng Khoo,et al.  Compiling Inheritance using Partial Evaluation , 1991, PEPM.

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

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

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

[5]  Lynn Andrea Stein,et al.  Delegation is inheritance , 1987, OOPSLA '87.

[6]  Naftaly H. Minsky,et al.  A law-based approach to object-oriented programming , 1987, OOPSLA '87.

[7]  Alan Borning,et al.  Deltatalk: An Empirically and Aesthetically Motivated Simplification of the Smalltalk-80 Language , 1987, ECOOP.

[8]  Peter D. Mosses,et al.  On Proving Limiting Completeness , 1987, SIAM J. Comput..

[9]  Alan Snyder,et al.  Encapsulation and inheritance in object-oriented programming languages , 1986, OOPLSA '86.

[10]  Boolean classes , 1986, OOPLSA '86.

[11]  David A. Schmidt,et al.  Denotationaisemantics: a methodology for language development , 1986 .

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

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

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

[15]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[16]  Michael J. C. Gordon,et al.  The denotational description of programming languages - an introduction , 1979 .

[17]  Michael J. C. Gordon,et al.  The Denotational Description of Programming Languages , 1979, Springer New York.

[18]  Dana S. Scott,et al.  Data Types as Lattices , 1976, SIAM J. Comput..