On Subtyping and Matching

A relation between recursive object types, called matching, has been proposed as a generalization of subtyping. Unlike subtyping, matching does not support subsumption, but it does support inheritance of binary methods. We argue that matching is a good idea, but that it should not be regarded as a form of F-bounded subtyping (as was originally intended). We show that a new interpretation of matching as higher-order subtyping has better properties. Matching turns out to be a third-order construction, possibly the only one to have been proposed for general use in programming.

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

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

[3]  Martín Abadi,et al.  A Theory of Primitive Objects: Second-Order Systems , 1995, Sci. Comput. Program..

[4]  Adriana B. Compagnoni,et al.  Higher-order subtyping with intersection types , 1995 .

[5]  Martín Abadi,et al.  A Theory of Primitive Objects - Scond-Order Systems , 1994, ESOP.

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

[7]  Greg Nelson,et al.  Systems programming in modula-3 , 1991 .

[8]  Luca Cardelli,et al.  An Extension of System F with Subtyping , 1994, Inf. Comput..

[9]  Martín Abadi,et al.  A PER model of polymorphism and recursive types , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.

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

[11]  Benjamin C. Pierce,et al.  A record calculus based on symmetric concatenation , 1991, POPL '91.

[12]  Roberto M. Amadio,et al.  Recursion over Realizability Structures , 1991, Inf. Comput..

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

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

[15]  Scott F. Smith,et al.  An interpretation of typed OOP in a language with state , 1995, LISP Symb. Comput..

[16]  Luca Cardelli,et al.  Operations on records , 1989, Mathematical Structures in Computer Science.

[17]  Martín Abadi,et al.  A semantics of object types , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[18]  Kim B. Bruce,et al.  A Modest Model of Records, Inheritance and Bounded Quantification , 1990, Inf. Comput..

[19]  Felice Cardone,et al.  Relational Semantics for Recursive Types and Bounded Quantification , 1989, ICALP.

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

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

[22]  David C. Luckham,et al.  Polymorphism and Subtyping in Interfaces , 1994, Workshop on Interface Definition Languages.

[23]  Martín Abadi,et al.  An Imperative Object Calculus , 1995, TAPSOFT.

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

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

[26]  Martín Abadi,et al.  A Theory of Primitive Objects - Untyped and First-Order Systems , 1994, TACS.

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

[28]  John C. Mitchell,et al.  PER models of subtyping, recursive types and higher-order polymorphism , 1992, POPL '92.

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

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

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

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