Toward a typed foundation for method specialization and inheritance

This paper discusses the phenomenon of method specialization in object-oriented programming languages. A typed function calculus of objects and classes is presented, featuring method specialization when methods are added or redefined. The soundness of the typing rules (without subtyping) is suggested by a translation into a more traditional calculus with recursively-defined record types. However, semantic questions regarding the subtype relation on classes remain open.

[1]  William R. Cook,et al.  A Proposal for Making Eiffel Type-Safe , 1989, Comput. J..

[2]  Alan Borning,et al.  Classes versus Prototypes in Object-Oriented Languages , 1986, FJCC.

[3]  John C. Mitchell,et al.  The Semantics of Second-Order Lambda Calculus , 1990, Inf. Comput..

[4]  Mitchell Wand,et al.  Type inference for record concatenation and multiple inheritance , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

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

[6]  Luca Cardelli,et al.  Operations on Records , 1989, Mathematical Foundations of Programming Semantics.

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

[8]  John C. Mitchell,et al.  ML with extended pattern matching and subtypes , 1988, LISP and Functional Programming.

[9]  Scott Danforth,et al.  Type theories and object-oriented programmimg , 1988, CSUR.

[10]  Jonathan Rees,et al.  T: a dialect of Lisp or LAMBDA: The ultimate software tool , 1982, LFP '82.

[11]  Didier Rémy,et al.  Type checking records and variants in a natural extension of ML , 1989, POPL '89.

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

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

[14]  Luca Cardelli,et al.  The Modula–3 type system , 1989, POPL '89.

[15]  Jonathan Rees,et al.  Object-oriented programming in scheme , 1988, LFP '88.

[16]  Thierry Coquand,et al.  Inheritance and explicit coercion , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

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

[18]  John C. Reynolds,et al.  Polymorphism is not Set-Theoretic , 1984, Semantics of Data Types.

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

[20]  Bernard Robinet,et al.  Combinators and functional programming languages : Thirteenth Spring School of the LITP, Val d'Ajol, France, May 6-10, 1985, proceedings , 1986 .

[21]  John C. Mitchell,et al.  Coercion and type inference , 1984, POPL.

[22]  Kim B. Bruce,et al.  A modest model of records, inheritance and bounded quantification , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[23]  Luca Cardelli,et al.  Modula-3 Report. , 1988 .

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

[25]  Alan Borning,et al.  A type declaration and inference system for smalltalk , 1982, POPL '82.

[26]  Phillip M. Yelland First Steps Towards Fully Abstract Semantics for Object-Oriented Languages , 1989, Comput. J..

[27]  Ryan Stansifer,et al.  Type inference with subtypes , 1988, POPL '88.

[28]  Randall B. Smith,et al.  SELF: The power of simplicity , 1987, OOPSLA '87.

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

[30]  Norihisa Suzuki,et al.  Inferring types in Smalltalk , 1981, POPL '81.

[31]  Gordon D. Plotkin,et al.  An Ideal Model for Recursive Polymorphic Types , 1986, Inf. Control..

[32]  Colin Atkinson,et al.  Dragoon: an ada-based object oriented language for concurrent , 1989 .