Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Data structures and network algorithms
Data structures and network algorithms
On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Fundamentals of interactive computer graphics
Fundamentals of interactive computer graphics
Object oriented programming: an evolutionary approach
Object oriented programming: an evolutionary approach
Encapsulation and inheritance in object-oriented programming languages
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Using prototypical objects to implement shared behavior in object-oriented systems
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
On including part hierarchies in object-oriented languages, with an implementation in Smalltalk
European conference on object-oriented programming on ECOOP '87
Composite object support in an object-oriented database system
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
BYTE
A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
A data structure for dynamic trees
Journal of Computer and System Sciences
Latex: a document preparation system
Latex: a document preparation system
Object oriented design with applications
Object oriented design with applications
The SGML handbook
ML for the working programmer
Advanced C++ programming styles and idioms
Advanced C++ programming styles and idioms
Object-oriented design
Eiffel: the language
Object-oriented modeling and design
Object-oriented modeling and design
Roles for composite objects in object-oriented analysis and design
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Complex associations: abstractions in object-oriented modeling
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Composition of before/after metaclasses in SOM
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
The design and evolution of C++
The design and evolution of C++
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
Classes versus prototypes in object-oriented languages
ACM '86 Proceedings of 1986 ACM Fall joint computer conference
Author's Guide to the Standard Generalized Markup Language
Author's Guide to the Standard Generalized Markup Language
Object Oriented Software Development Environments: The Mjolner Approach
Object Oriented Software Development Environments: The Mjolner Approach
Should Superclasses be Abstract?
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
Traces (A Cut at the "Make Isn't Generic" Problem)
Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software
Interviews: A C++ graphical interface toolkit
Interviews: A C++ graphical interface toolkit
Tiling design patterns—a case study using the interpreter pattern
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Aspects and polymorphism in AspectJ
Proceedings of the 2nd international conference on Aspect-oriented software development
Context Spaces Architectural Framework
SAINT-W '04 Proceedings of the 2004 Symposium on Applications and the Internet-Workshops (SAINT 2004 Workshops)
Environmental acquisition revisited
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Environmental Acquisition in Network Management
LISA '02 Proceedings of the 16th USENIX conference on System administration
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
A delegation-based approach for the unanticipated dynamic evolution of distributed objects
Journal of Systems and Software
Modeling dynamic software components in UML
UML'99 Proceedings of the 2nd international conference on The unified modeling language: beyond the standard
Hi-index | 0.00 |
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.