Re: OO polymorphism

> You have those that consider an object as a sophisticated case of
> a record, in that case polymorphism is to be intended as "subtype
> polymorphism". This all originated with Luca Cardelli seminal paper "A
> semantics of multiple inheritance" (Info&Compu n.76). And then there are
> tons of other references that I could give you.

Some credit should also go to John Reynolds, whose contributions to
this area are often overlooked.  Reynolds indicated how records could
model classes in Syntactic Control of Interference (1978), and defined
the appropriate subtyping relation on records in The Essence of Algol
(1981).  Both of these papers are classics -- they tackle deep
problems in the semantics of concurrent and imperative languages --
and just happen to lay the foundations of object-oriented programming
as almost an afterthought (the model of classes appears as an appendix
to Syntactic Control of Interference).  Cardelli and Wegner cite
Reynolds, but not these papers.  My guess is that their work is
independent, but not completely so -- they may have been influenced by
ideas "in the air" whose origin could be traced to Reynolds.  -- P

John C. Reynolds, Syntactic Control of Interference, Fifth ACM
Symposium on Principles of Programming Languages, Tucson, AZ, Jan
1978, pages 36--49.

J. C. Reynolds. The essence of Algol. In J. W. de Bakker and J. C. van
Vliet, editors, Algorithmic Languages, pages 345-372. North-Holland,
Amsterdam, 1981.

Luca Cardelli and Peter Wegner. "On understanding types, data
abstraction, and polymorphism." Computing Surveys, Vol. 17, No. 4,
December 1985, pp. 471--522.

L. Cardelli, A Semantics of Multiple Inheritance, Information and
Computation 76 (1988) 138-164.

Philip Wadler
phone +1 908 696 5137 fax +1 908 696 540
Avaya Labs, 233 Mount Airy Road, Basking Ridge, NJ 07920 USA
"When a Mathematical Reasoning can be had it's as great a folly
to make use of any other, as to grope for a thing in the dark,
when you have a Candle standing by you." John Arbuthnot, 1692