MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Subtypes vs. Where Clauses: Constraining Parametric Polymorphism (1995) [70 citations — 11 self]

by Mark Day ,  Robert Gruber ,  Barbara Liskov ,  Andrew C. Myers
In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA
Add To MetaCart

Abstract:

All object-oriented languages provide support for subtype polymorphism, which allows the writing of generic code that works for families of related types. There is also a need, however, to write code that is generic across types that have no real family relationship. To satisfy this need a programming language must provide a mechanism for parametric polymorphism, allowing for types as parameters to routines and types. We show that to support modular programming and separate compilation there must be a mechanism for constraining the actual parameters of the routine or type. We describe a simple and powerful constraint mechanism and compare it with constraint mechanisms in other languages in terms of both ease of use and semantic expressiveness. We also discuss the interaction between subtype and parametric polymorphism: we discuss the subtype relations that can exist between instantiations of parameterized types, and which of those relations are useful and can be implemented efficiently...

Citations

467 A semantics of multiple inheritance – Cardelli - 1984
349 A behavioral notion of subtyping – Liskov, Wing - 1994
193 and Bjarne Stroustrup. The Annotated C++ Reference Manual – Ellis - 1990
165 Abstraction and Specification in Program Development – Liskov, Guttag - 1986
127 PolyTOIL: A type-safe polymorphic object-oriented language – Bruce, Schuett, et al. - 1995
101 A proposal to make Eiffel typesafe – Cook - 1989
62 A Fast Method Dispatcher for Compiled Languages with Multiple Inheritance – Dixon, McKee, et al. - 1989
55 Genericity versus Inheritance – Meyer - 1986
53 Multiple Inheritance for C – Stroustrup - 1987
32 Trellis object-based environment language reference manual – Schaffert, Cooper, et al. - 1985
28 Fast Dispatch Mechanisms for Stock Hardware – Rose - 1988
27 A language extension for expressing constraints on data access – JONES, LISKOV - 1978
19 Bidirectional object layout for separate compilation – Myers - 1995
14 Aspects of implementing CLU – Atkinson, Liskov, et al. - 1978
12 Polymorphism and subtyping in interfaces – Katiyar, Luckham, et al. - 1994
7 Fast object operations in a persistent programming system – Myers - 1994
2 Efficient Implementation of Parameterized Types in an Object-Oriented Language. Programming Methodology Group Memo 91 – Myers, Liskov - 1994
2 Types in school – Rodrigues, Ierusalimschy, et al. - 1993
1 Personal communication. [BHJ + 87] Andrew Black – Black, Hutchinson - 1995