Comparing Object Encodings

Recent years have seen the development of several foundational models for statically typed object-oriented programming. But despite their intuitive similarity, differences in the technical machinery used to formulate the various proposals have made them difficult to compare. Using the typed lambda-calculus F < ω : as a common basis, we now offer a detailed comparison of four models: (1) a recursive-record encoding similar to the ones used by Cardelli [Car84], Reddy [Red88, KR94], Cook [Coo89, CHC90], and others; (2) Hofmann, Pierce, and Turner's existential encoding [PT94, HP95]; (3) Bruce's model based on existential and recursive types [Bru94]; and (4) Abadi, Cardelli, and Viswanathan's type-theoretic encoding [ACV96] of a calculus of primitive objects.

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

[2]  Larry Carter,et al.  Distrbution and Abstract Types in Emerald , 1987, IEEE Transactions on Software Engineering.

[3]  John C. Mitchell,et al.  Abstract types have existential type , 1988, TOPL.

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

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

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

[7]  John C. Mitchell,et al.  F-bounded polymorphism for object-oriented programming , 1989, FPCA.

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

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

[10]  John C. Mitchell Toward a typed foundation for method specialization and inheritance , 1989, POPL '90.

[11]  John C. Mitchell,et al.  F-bounded quantification for object-oriented programming , 1989 .

[12]  William R. Cook,et al.  Inheritance is not subtyping , 1989, POPL '90.

[13]  Luca Cardelli,et al.  A Semantic Basis for Quest , 1991, J. Funct. Program..

[14]  Giorgio Ghelli,et al.  Coherence of Subsumption, Minimum Typing and Type-Checking in F<= , 1992, Math. Struct. Comput. Sci..

[15]  Luca Cardelli,et al.  Subtyping recursive types , 1993 .

[16]  Kim B. Bruce Safe type checking in a statically-typed object-oriented programming language , 1993, POPL '93.

[17]  Giorgio Ghelli Recursive Types Are not Conservative over F , 1993, TLCA.

[18]  Samuel N. Kamin,et al.  Two semantic models of object-oriented languages , 1994 .

[19]  Adriana B. Compagnoni,et al.  Decidability of Higher-Order Subtyping with Intersection Types , 1994, CSL.

[20]  Benjamin C. Pierce,et al.  Bounded Quantification is Undecidable , 1994, Inf. Comput..

[21]  Kim B. Bruce A paradigmatic object-oriented programming language: Design, static typing and semantics , 1994, Journal of Functional Programming.

[22]  Benjamin C. Pierce,et al.  Simple type-theoretic foundations for object-oriented programming , 1994, Journal of Functional Programming.

[23]  Benjamin C. Pierce,et al.  Higher-Order Subtyping , 1994, Theor. Comput. Sci..

[24]  John C. Mitchell,et al.  Notes on Typed Object-Oriented Programming , 1994, TACS.

[25]  Andrew C. Myers,et al.  Subtypes vs. where clauses: constraining parametric polymorphism , 1995, OOPSLA.

[26]  Giorgio Ghelli,et al.  Divergence of F< Type Checking , 1995, Theor. Comput. Sci..

[27]  Luca Cardelli,et al.  On Binary Methods , 1995, Theory Pract. Object Syst..

[28]  Kim B. Bruce,et al.  PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language , 1995, ECOOP.

[29]  Martín Abadi,et al.  On Subtyping and Matching , 1995, ECOOP.

[30]  John C. Mitchell,et al.  The Development of Type Systems for Object-Oriented Languages , 1995, Theory Pract. Object Syst..

[31]  Martin Hofmann,et al.  A unifying type-theoretic framework for objects , 1994, Journal of Functional Programming.

[32]  Martín Abadi,et al.  An interpretation of objects and object types , 1996, POPL '96.

[33]  Robert Harper,et al.  Typed closure conversion , 1996, POPL '96.

[34]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[35]  Kim B. Bruce,et al.  Subtyping Is Not a Good "Match" for Object-Oriented Languages , 1997, ECOOP.