Next:
List of Figures
Up:
Typing in object-oriented languages:
Previous:
Typing in object-oriented languages:
Contents
Contents
List of Figures
Introduction
Why type checking?
Plan of the paper
Types and Subtypes, Classes and Subclasses
Types and subtypes
Record types
Function types
Types of variables
Classes and Subclasses
Differences between subtypes and subclasses
Simple type systems are lacking in flexibility
The need to change return types in subclasses
The need to change parameter and instance variable types in subclasses
Other typing problems
Toward more flexible type systems
Subtyping of method types in subclasses
Examples using flexible types
Introducing
MyType
The matching relation between types
Type checking classes using matching
Matching is necessary in type checking classes
Binary methods complicate subtyping
Subclasses do not generate subtypes
A new definition of subtyping for object types
Evaluating the use of
MyType
Combining parametric polymorphism with matching
Solutions to Eiffel's covariant type problems
Eiffel's system validity check
Solving covariance problems with match-bounded polymorphism
Meyer's solution: Banning polymorphic catcalls
Replacing subtyping with matching
Conclusions and related work
References
Example linked list program using matching
Kim Bruce
10/28/1998