Semantics of Object-Oriented Languages
Mario I. Wolczko
(Ph.D. thesis) Technical Report UMCS-88-6-1, Department of Computer Science,
University of Manchester, May 1988.
Abstract
Object-oriented programming is becoming an important technique in the
construction of large software systems. Compelling arguments, like
reduced maintenance costs, are advanced to encourage its use. To
maximise the advantages of such methods, object-oriented programming
languages need to be well-designed. When selecting the main features
of a programming language, or choosing between alternative designs,
formal methods of semantic analysis are invaluable. To date little
attention has been given to the formal description of object-oriented
languages. This thesis introduces a framework for describing the
semantics of object-oriented languages.
To characterise the important features of object-oriented languages,
an idealised object-oriented language is described and its semantics
specified formally, using the denotational style of VDM. Design
alternatives are explored in the same way. Several general principles
of object-oriented language design are introduced, and the
alternatives reviewed in light of these principles. By choosing
apposite semantic domains, the fundamental concepts of object-oriented
systems are exposed: two message-passing schemes, based on
dynamically-bound procedure call and delegation, are presented;
class- and prototype-based systems are described; and special emphasis
is given to the different approaches to class-based multiple
inheritance. The encapsulation of behaviour within classes is
discussed, and suggestions are made as to how this might be best
achieved. A variety of object-oriented control mechanisms are also
surveyed.
The PostScript source is in several pieces:
the main body,
fig 2.1,
fig 2.2,
fig 2.3, and
fig 2.4.
The thesis is in A5 format.