Using prototypical objects to implement shared behavior in object-oriented systems
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
The point of view notion for multiple inheritance
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Inheritance modeled with explicit bindings: an approach to typed inheritance
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Evolution of object behavior using context relations
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
ACM Computing Surveys (CSUR)
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
Pattern languages of program design 3
The Java programming language (2nd ed.)
The Java programming language (2nd ed.)
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Essential COM
Planning Extreme Programming
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
A Marriage of Class- and Object-Based inheritance Without Unwanted Children
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Abstracting Object Interactions Using Composition Filters
ECOOP '93 Proceedings of the Workshop on Object-Based Distributed Programming
Runtime aspect weaving through metaprogramming
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
Dynamically Composable Collaborations with Delegation Layers
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Qualifying Types Illustrated by Synchronisation Examples
NODe '02 Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World
Proceedings of the 2007 ACM symposium on Applied computing
Towards safe and flexible object adaptation
International Workshop on Context-Oriented Programming
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
The keyword revolution: promoting language constructs for data access to first class citizens
Proceedings of the 1st International Workshop on Free Composition
Object reuse and behavior adaptation in Java-like languages
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Dimensions of composition models for supporting software evolution
SC'06 Proceedings of the 5th international conference on Software Composition
Evolution for the sustainability of internetware
Proceedings of the Fourth Asia-Pacific Symposium on Internetware
Transactions on Aspect-Oriented Software Development IX
On flexible dynamic trait replacement for Java-like languages
Science of Computer Programming
Forsaking inheritance: supercharged delegation in DelphJ
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Hi-index | 0.00 |
Object-oriented languages come with pre-defined composition mechansims, such as inheritance, object composition, or delegation, each characterized by a certain set of composition properties, which do not themselves individually exist as abstractions at the language level. However, often non-standard composition semantics is needed, with a mixture of composition mechanisms. Such non-standard semantics are simulated by complicated architectures that are sensitive to requirement changes and cannot easily be adapted without invalidating existing clients. In this paper, we propose compound references, a new abstraction for object references, that allows us to provide explicit linguistic means for expressing and combining individual composition properties on-demand. The model is statically typed and allows the programmer to express a seamless spectrum of composition semantics in the interval between object composition and inheritance. The resulting programs are better understandable, due to explicity expressed design decisions, and less sensitive to requirement changes.