[Prev][Next][Index][Thread]
Two papers on object-oriented programming
Date: Mon, 31 Aug 92 12:56:22 +0100
Two new papers on type systems for object-oriented programming are now
available for anonymous ftp; abstracts and ftp instructions follow.
The postscript sources can be emailed to sites without convenient FTP
access. Paper copies are also available on request; they should be
printed in a few weeks.
Cheers,
Benjamin Pierce
------------------------------------------------------------------------
Object-Oriented Programming Without Recursive Types
Benjamin C. Pierce and David N. Turner
ECS-LFCS-92-226
It is widely agreed that the full complexity of recursive types is
inherent in the essential mechanisms of object-oriented programming:
encapsulation, message passing, subtyping, and inheritance. We show
here that modeling object encapsulation in terms of existential types
yields a substantially more straightforward explanation of these
features in a simpler type theory without recursive types.
File names in FTP archive: oopsansrec (summary)
oop (expanded version)
An Abstract View of Objects and Subtyping
Martin Hofmann and Benjamin Pierce
ECS-LFCS-92-226
We give a direct type-theoretic characterization of the basic
mechanisms of object-oriented programming -- objects, methods, message
passing, and subtyping -- by introducing an explicit Object type
constructor together with suitable introduction, elimination, and
equality rules. The resulting abstract framework represents a first
step towards a high-level axiomatization of object-oriented
programming, and provides a common basis for justifying and comparing
known encodings of objects in terms of the seemingly diverse machinery
of recursive record types, F-bounded quantification, and existential
types.
File name in FTP archive: abstroop
------------------------------------------------------------------------
SAMPLE FTP SCRIPT
-----------------
ftp ftp.dcs.ed.ac.uk [or 129.215.160.5]
login: anonymous
password: <your mail address>
binary [don't forget this!]
cd pub/bcp
get oop.ps.Z
get abstroop.ps.Z