Highly parallel computing (2nd ed.)
Highly parallel computing (2nd ed.)
Inside COM
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Modular object-oriented programming with units and mixins
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
An agent approach to alleviating packaging mismatch
AGENTS '00 Proceedings of the fourth international conference on Autonomous agents
MultiJava: modular open classes and symmetric multiple dispatch for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Safely creating correct subclasses without seeing superclass code
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Communications of the ACM
Aspect-oriented programming with adaptive methods
Communications of the ACM
Jiazzi: new-age components for old-fasioned Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Extensible algebraic datatypes with defaults
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Stand-Alone Messages: A Step Towards Component-Oriented Programming Languages
JMLC '00 Proceedings of the Joint Modular Languages Conference on Modular Programming Languages
Reflection for Statically Typed Languages
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
A Study of The Fragile Base Class Problem
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Synthesizing Object-Oriented and Functional Design to Promote Re-Use
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Type-Safe Prototype-Based Component Evolution
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
The Translator Pattern - External Functionality with Homomorphic Mappings
TOOLS '97 Proceedings of the Tools-23: Technology of Object-Oriented Languages and Systems
Programming languages for reusable software components
Programming languages for reusable software components
Handling the subclassing anomaly with Object Teams
ACM SIGPLAN Notices
A framework of software component adaptation
ICA3PP'07 Proceedings of the 7th international conference on Algorithms and architectures for parallel processing
Hi-index | 0.00 |
Software components can be implemented and distributed as collections of classes, then adapted to the needs of specific applications by means of subclassing. Unfortunately, subclassing in collections of related classes may require re-implementation of otherwise valid classes just because they utilize outdated parent classes, a phenomenon that is referred to as the subclassing anomaly. The subclassing anomaly is a serious problem since it can void the benefits of component-based programming altogether. We propose a code adaptation language mechanism called class overriding that is intended to overcome the subclassing anomaly. Class overriding does not create new and isolated derived classes as subclassing does, but rather extends and updates existing classes across collections of related classes. If adopted in new languages for component-based programming, or in existing compiled languages such as C# and Java, class overriding can help maintain the integrity of evolving collections of related classes and thus enhance software component adaptability.While other techniques such as reflection and binary code adaptation can be used to reduce the magnitude of the subclassing anomaly, class overriding has the advantage of being easy-to-use and efficient.