Introduction

In his influential early paper on data types[4], Hoare states:

Every value belongs to one and only one type.

It is evident from Algol-style languages like Ada and Modula that many programming language designs conform with this view.

The adoption of this view bought compiler simplicity at the expense of language expressivity -- a reasonable trade off then, but not now. In recent languages, such as Oberon, some of the lost expressivity is regained by the introduction of subtypes[13].

It is shown in section 10 that, in real life, types intersect in ways that are difficult to model using only sub typing. A closer fit between reality and model can be achieved if types are allowed to intersect in arbitrary ways. The aim of the paper is to examine some of the consequences and to suggest how arbitrary intersections can be constructed.


next up previous

Prof Herman Venter
Thu May 2 09:26:52 GMT 1996