Environmental Acquisition: A new inheritance-like abstraction mechanism

Joseph Gil and David H. Lorenz

Vol. 31, No. 10 (Oct. 1996), Pages 214-231
in: OOPSLA '96. Proceedings of the eleventh annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications,
October 6 - 10, 1996, San Jose, CA USA

[Index Terms]
[Full Text in Gzipped PS Format, 83 KB]
[Full Text in PDF Format, 2348 KB]
[BibTeX Entry]



The class of an object is not necessarily the only determiner of its runtime behaviour. Often it is necessary to have an object behave differently depending upon the other objects to which it is connected. However, as it currently stands, object-oriented programming provides no support for this concept, and little recognition of its role in common, practical programming situations. This paper investigates a new programming paradigm, environmental acquisition in the context of object aggregation, in which objects acquire behaviour from their current containers at runtime. The key idea is that the behaviour of a component may depend upon its enclosing composite(s). In particular, we propose a form of feature sharing in which an object ``inherits" features from the classes of objects in its environment. By examining the declaration of classes, it is possible to determine which kinds of classes may contain a component, and which components must be contained in a given kind of composite. These relationships are the basis for language constructs that supports acquisition. We develop the theory of acquisition that includes topics such as the kinds of links along which acquisition may occur, and the behaviour of routine (methods) and attribute features under acquisition. The proposed model for acquisition as a hierarchical abstraction mechanism is a strongly typed model that allows static type checking of programs exploiting this mechanism. We compare it to several other mechanisms including inheritance and delegation, and show that it is significantly different than these.

General Terms

Algorithms, Design, Languages

Categories and Subject Descriptors

Software -Programming Techniques - Object-oriented Programming (D.1); Theory of Computation -Logics and Meanings of Programs - Studies of Program Constructs (F.3.3): Type structure; Theory of Computation -Logics and Meanings of Programs - Studies of Program Constructs (F.3.3): Functional constructs; Information Systems -Information Interfaces and Presentation - User Interfaces (H.5.2): Screen design; Information Systems -Information Interfaces and Presentation - User Interfaces (H.5.2): Interaction styles; Software -Programming Languages - Language Classifications (D.3.2): C++;

BibTeX Entry

    Author = {Joseph Gil and David H. Lorenz},
    Crossref = {OOPSLA:96},
    Pages = "214--231",
    Title = {{E}nvironmental {A}cquisition -- {A} New Inheritance-Like Abstraction Mechanism},
    Year = 1996,

---------- OOSPLA crossref begin ----------
@String{SIGPLAN = "Acm SIGPLAN Notices"}
@String{PROC = "Proceedings of"}
@String{OOPSLA = "Object-Oriented Programming Systems, Languages, and Applications"}
@String{PROC:OOPSLA96 = PROC#" the 11$^{th}$ Annual Conference on "#OOPSLA}
@String{OOPSLA96 = "OOPSLA'96"}
    ISBN = "0-201-92109-X",
	Address = {San Jose, California},
    Booktitle = PROC:OOPSLA96,
    Key = OOPSLA96,
    Month = oct#{ 6-10},
    Organization = OOPSLA96,
    Publisher = SIGPLAN#{ 31(10) }#Oct#{ 1996},
    Title = PROC:OOPSLA96,
    Year = 1996,

Published by the
OOPSLA '96. Copyright 1996 ACM, Inc. ?