Results 1 -
4 of
4
A Denotational Semantics of Inheritance
, 1989
"... This thesis develops a semantic model of inheritance and investigates its applications for the analysis and design of programming languages. Inheritance is a mechanism for incremental programming in the presence of self-reference. This interpretation of inheritance is formalized using traditional te ..."
Abstract
-
Cited by 137 (6 self)
- Add to MetaCart
This thesis develops a semantic model of inheritance and investigates its applications for the analysis and design of programming languages. Inheritance is a mechanism for incremental programming in the presence of self-reference. This interpretation of inheritance is formalized using traditional techniques of fixed-point theory, resulting in a compositional model of inheritance that is directly applicable to object-oriented languages. Novel applications of inheritance revealed by the model are illustrated to show that inheritance has wider significance beyond object-oriented class inheritance. Constraints induced by self-reference and inheritance are investigated using type theory and yield a formal characterization of abstract classes and a demonstration that the subtype relation is a direct consequence of the basic mechanism of inheritance. The model is proven equivalent to the operational semantics of inheritance embodied by the interpreters of object-oriented languages like Smalltalk. Concise descriptions of inheritance behavior in several object-oriented languages, including Smalltalk, Beta, Simula, and Flavors, are presented in a common framework that facilitates direct comparison of their features.
Split Objects: a Disciplined Use of Delegation within Objects
, 1996
"... This paper's primary aim is to improve the understanding of the delegation mechanism as defined in [18]. We propose a new characterization of delegation based on the notions of name sharing, property sharing and value sharing. It allows us (1) to clearly differentiate delegation from classinheritanc ..."
Abstract
-
Cited by 32 (6 self)
- Add to MetaCart
This paper's primary aim is to improve the understanding of the delegation mechanism as defined in [18]. We propose a new characterization of delegation based on the notions of name sharing, property sharing and value sharing. It allows us (1) to clearly differentiate delegation from classinheritance in particular and more generally from other inheritance mechanisms and (2) to explain how a founded use of delegation relies on a correct semantics of variable property sharing between objects connected by a delegation link. We then describe a model of split objects which is proposed as an example of a disciplined and semantically founded use of delegation, where property sharing expresses viewpoints within objects. 1 Introduction All kinds of inheritance mechanisms in objectoriented programming or representation languages, despite their diversities [5, 26], have at least the following common points [11]: ffl They are based on a relation I between objects or between concepts (for exampl...
Parallel Object-Oriented Programming with QPC++
- Structured Programming
, 1993
"... : QPC++ is an extension of the object-oriented programming language C++. It integrates mechanisms for specifying parallelism, communication, and synchronization into the base language. Processes are not added as an orthogonal concept to the language. Instead, the concepts of object-oriented and para ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
: QPC++ is an extension of the object-oriented programming language C++. It integrates mechanisms for specifying parallelism, communication, and synchronization into the base language. Processes are not added as an orthogonal concept to the language. Instead, the concepts of object-oriented and parallel programming are merged in such a way that processes are created as instances of specialized classes, called process classes. Processes can be regarded as active objects which can communicate via their member functions. Thus, QPC++ is a very useful and suitable tool for the modeling and implementation of applications which are characterized by activities taking place in parallel, e.g., simulations or interactive graphical user interfaces. This article demonstrates the integration of mechanisms for expressing parallelism into existing objectoriented programming languages. It turns out that merging of concepts of object-oriented and parallel programming can be done in a very clear and natu...

