Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Keynote address - data abstraction and hierarchy
OOPSLA '87 Addendum to the proceedings on Object-oriented programming systems, languages and applications (Addendum)
The use of multimethods and method combination in a CLOS based window interface
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
Programming in Dylan
Communications of the ACM
Language and compiler support for mixin programming
Language and compiler support for mixin programming
A first-class approach to genericity
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Scalable extensibility via nested inheritance
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Classbox/J: controlling the scope of change in Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
MultiJava: Design rationale, compiler implementation, and applications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Encapsulating and exploiting change with changeboxes
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Classboxes: controlling visibility of class extensions
Computer Languages, Systems and Structures
Transactions on Aspect-Oriented Software Development I
FJMIP: a calculus for a modular object initialization
FCT'07 Proceedings of the 16th international conference on Fundamentals of Computation Theory
Hi-index | 0.00 |
While software systems are growing bigger, and the market demands shorter software production cycles, IT companies need more and more extensive reuse of existing components. Additionally, sophisticated reuse scenarios demand flexible components which are able to adapt to different needs. As a result, it is required that all the components are as customizable as possible. In object-oriented (OO) programming languages, the base tool of reuse and customization is inheritance, which is widely known and exploited, however shows its limits when it comes to reuse nested components, which implement their behaviour using other classes instantiated internally. In this paper we present a new proposal that offers a feature for replacing a class with a compatible subclass within a library without the need of modifying its sources. As a result, it increases the possible reuse and the customization scenarios of existing components, with little additional coding required. Our idea is presented as an extension of an arbitrary OO language, however it is studied in more details as an extension of Java called ImpliJava.