A Typeful Approach to Object-Oriented Programming with Multiple inheritance

In
this paper, we present a typeful approach to implementing objects that makes use of a recently introduced notion of guarded datatypes. In particular, we demonstrate how the feature of multiple inheritance can be supported with this approach, presenting a simple and general account for multiple inheritance in a typeful manner.

[snip]

We refer the reader to [XCC03,Xi02] for further details on this typeful approach to OOP (with single inheritance). The treatment of multiple inheritance in this paper bears a great deal of similarity to the treatment of single inheritance in [XCC03,Xi02], though there are also some substantial differences involved. In order to handle multiple inheritance, we are to treat a path from a (super) class to a (sub)class as a first-class value.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

O'Caml's Object System

It would be interesting to contrast this paper with the foundational papers behind O'Caml's object system, which also supports "typeful multiple inheritance." Those papers are "Programming Objects with ML-ART: An extension to ML with Abstract and
Record Types," which doesn't appear to be online, and Objective ML: An effective object-oriented extension to ML. There are many good O'Caml papers at <http://caml.inria.fr/pub/papers>.

"Programming Objects with ML-

"Programming Objects with ML-ART: An extension to ML with Abstract and
Record Types," which doesn't appear to be online

FYI: I found it through Rémy's homepage.