[Prev][Next][Index][Thread]
Multiple Inheritance via Intersection Types
The following paper is now available for anonymous FTP, on the host
ftp.dcs.ed.ac.uk [or 129.215.160.5] in the directory pub/bcp, in the
file fomeet.ps.
Cheers,
Adriana Compagnoni
Benjamin Pierce
-----------------------------------------------------------------------
Multiple Inheritance via Intersection Types
Adriana Compagnoni Benjamin Pierce
Catholic University, Nijmegen LFCS, Edinburgh
Combining intersection types with higher-order subtyping yields a
typed model of object-oriented programming with multiple inheritance.
Objects, message passing, subtyping, and inheritance appear as
programming idioms in a typed lambda-calculus, a modelling technique
that facilitates experimentation and helps in distinguishing between
essential aspects of the object-oriented style -- encapsulation and
subtype polymorphism, which are directly reflected in the low-level
type system -- and useful but inessential programming idioms such as
inheritance.
The target calculus, a natural generalization of system F-omega with
intersection types, is of independent interest. We establish basic
structural properties and give a proof of type soundness using a
simple semantics based on partial equivalence relations.