Typed interpretations of extensible objects

Finding typed encodings of object-oriented into procedural or functional programming sheds light on the theoretical foundations of object-oriented languages and their specific typing constructs and techniques. This article describes a type preserving and computationally adequate interpretation of a full-fledged object calculus that supports message passing and constructs for object update and extension. The target theory is a higher-order λ-calculus with records and recursive folds/unfolds, polymorphic and recursive types, and subtyping. The interpretation specializes to calculi of nonextensible objects, and validates the expected subtypin

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

[2]  John C. Mitchell,et al.  A lambda calculus of objects and method specialization , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[3]  William R. Cook,et al.  A self-ish model of inheritance , 1987 .

[4]  Michele Bugliesi,et al.  Subtyping Constraints for Incomplete Objects (Extended Abstract) , 1997, TAPSOFT.

[5]  Silvano Dal-Zilio,et al.  An Interpretation of Extensible Objects , 1999, FCT.

[6]  Brian Postow Book review: A Theory of Objects by Martin Abadi and Luca Cardelli (Springer-Verlag, 1996): Series--Monographs in Computer Science , 1999, SIGA.

[7]  John C. Mitchell,et al.  On the Relationship Between Classes, Objects, and Data Abstraction , 1998, Theory Pract. Object Syst..

[8]  Jon G. Riecke,et al.  Privacy via Subsumption , 2002, Inf. Comput..

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

[10]  John C. Mitchell,et al.  A Delegation-based Object Calculus with Subtying , 1995, FCT.

[11]  Ramesh Viswanathan,et al.  Full abstraction for first-order objects with recursive types and subtyping , 1998, Proceedings. Thirteenth Annual IEEE Symposium on Logic in Computer Science (Cat. No.98CB36226).

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

[13]  Martín Abadi,et al.  Baby Modula-3 and a theory of objects , 1994, Journal of Functional Programming.

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

[15]  Luigi Liquori,et al.  A Subtyping for the Fisher-Honsell-Mitchell Lambda Calculus of Objects , 1994, CSL.

[16]  Viviana Bono,et al.  Subtyping Constraints for In omplete Obje ts , 1997 .

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

[18]  Martín Abadi,et al.  On subtyping and matching , 1995, TOPL.

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

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

[21]  Karl Crary,et al.  Simple, Efficient Object Encoding using Intersection Types , 1998 .

[22]  Didier Rémy From Classes to Objects via Subtyping , 1998, ESOP.

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

[24]  Luca Cardelli,et al.  Comparing Object Encodings , 1997, Inf. Comput..

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

[26]  Michele Bugliesi,et al.  Matching for the lambda Calculus of Objects , 1999, Theor. Comput. Sci..

[27]  Luigi Liquori An Extended Theory of Primitive Objects: FIrst Order System , 1997, ECOOP.