Type substitution for object-oriented programming

Genericity allows the substitution of types in a class. This is usually obtained through parameterized classes, although they are inflexible since any class can be inherited but is not in itself parameterized. We suggest a new genericity mechanism, type substitution, which is a subclassing concept that complements inheritance: any class is generic, can be “instantiated” gradually without planning, and has all of its generic instances as subclasses.

[1]  Ole Lehrmann Madsen,et al.  Strong typing of object-oriented languages revisited , 1990, OOPSLA/ECOOP '90.

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

[3]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[4]  William R. Cook,et al.  Interfaces for strongly-typed object-oriented programming , 1989, OOPSLA '89.

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

[6]  Karl Lieberherr,et al.  Contributions to teaching object-oriented design and programming , 1989, OOPSLA 1989.

[7]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[8]  Craig Schaffert,et al.  An introduction to Trellis/Owl , 1986, OOPSLA 1986.

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

[10]  Karl J. Lieberherr,et al.  Contributions to Teaching Object Oriented Design and Programming , 1989, OOPSLA.

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

[12]  Ole Lehrmann Madsen,et al.  Virtual classes: a powerful mechanism in object-oriented programming , 1989, OOPSLA 1989.

[13]  Michael I. Schwartzbach Static Correctness of Hierarchical Procedures , 1989 .

[14]  Henry Ledgard,et al.  Reference Manual for the ADA® Programming Language , 1983, Springer New York.

[15]  Peter Buneman,et al.  Static type inference for parametric classes , 1989, OOPSLA 1989.

[16]  David Sandberg,et al.  An alternative to subclassing , 1986, OOPLSA '86.

[17]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977 .

[18]  William Cook,et al.  A Proposal for Making Eiel Type-safe , 1989 .

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

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

[21]  Erik Meineche Schmidt,et al.  An Imperative Type Hierarchy with Partial Products , 1989, MFCS.

[22]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[23]  Jens Palsberg,et al.  Genericity and inheritance , 1990 .

[24]  Henry Lieberman,et al.  Using prototypical objects to implement shared behavior in object-oriented systems , 1986, OOPLSA '86.

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

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

[27]  Luca Cardelli,et al.  Typeful Programming , 1989, Formal Description of Programming Concepts.

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

[29]  Bent Bruun Kristensen,et al.  The BETA Programming Language , 1987, Research Directions in Object-Oriented Programming.

[30]  Peter Buneman,et al.  OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications , 1989 .

[31]  H. Lipkin Where is the ?c? , 1978 .

[32]  Bertrand Meyer Genericity versus inheritance , 1986, OOPSLA 1986.

[33]  Al Stevens,et al.  C programming , 1990 .

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