Type-Safe Delegation for Dynamic Component Adaptation

The aim of component technology is the replacement of large monolithic applications with sets of smaller components whose particular functionality and interoperation can be adapted to users’ needs. However, the adaptation mechanisms of component software are still limited. Current proposals concentrate on adaptations that can be achieved either at compile time or at link time ([1], [2]). There is no support for dynamic component adaptation, i.e. unanticipated, incremental modifications of a component system at run-time. This is especially regrettable since systems that must always be operational would profit most from the ability to be structured into small interchangeable components that could evolve independently and whose functionality could be adapted dynamically.

[1]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[2]  Urs Hölzle,et al.  Eliminating Virtual Function Calls in C++ Programs , 1996, ECOOP.

[3]  Henry Lieberman,et al.  Using prototypical objects to implement shared behavior in object-oriented systems , 1986, OOPLSA '86.

[4]  John C. Mitchell,et al.  A Delegation-based Object Calculus with Subtying , 1995, FCT.

[5]  Urs Hölzle,et al.  Do Object-Oriented Languages Need Special Hardware Support? , 1995, ECOOP.

[6]  Günter Kniesel Implementation of Dynamic Delegation in Strongly Typed Inheritance-Based Systems , 1995 .

[7]  Jan Bosch,et al.  Superimposition: a component adaptation technique , 1999, Inf. Softw. Technol..

[8]  Kim Mens,et al.  Vrije Universiteit Brussel Faculteit Wetenschappen Reuse Contracts: Managing the Evolution of Reusable Assets Reuse Contracts: Managing the Evolution of Reusable Assets , 2022 .

[9]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[10]  Urs Hijlzle A Third-Generation SELF Implementation: Reconciling Responsiveness with Performance , 1998 .

[11]  Günter Kniesel,et al.  Dynamic object-based inheritance with subtyping , 2000 .

[12]  Craig Chambers,et al.  Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches , 1991, ECOOP.

[13]  Urs Hölzle,et al.  Adaptive optimization for self: reconciling high performance with exploratory programming , 1994 .

[14]  Pierre Cointe,et al.  Prototype-based languages: from a new taxonomy to constructive proposals and their validation , 1992, OOPSLA 1992.

[15]  Urs Hölzle,et al.  Supporting the Integration and Evolution of Components Through Binary Component Adaptation , 1997 .

[16]  Randall B. Smith,et al.  Self: The power of simplicity , 1987, OOPSLA 1987.

[17]  Emil Sekerinski,et al.  The Fragile Base Class Problem and Its Impact on Component Systems , 1997, ECOOP Workshops.

[18]  Urs Hölzle,et al.  A third-generation SELF implementation: reconciling responsiveness with performance , 1994, OOPSLA 1994.

[19]  John Lamping,et al.  Typing the specialization interface , 1993, OOPSLA '93.

[20]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[21]  Pierre Cointe,et al.  Prototype-Based Languages: From a New Taxonomy to Constructive Proposals and Their Validation , 1992, OOPSLA.

[22]  Clemens A. Szyperski Independently Extensible Systems - Software Engineering Potential and Challenges , 1996 .

[23]  Clemens Szyperski,et al.  Component software , 1997 .

[24]  Wolfgang Weck,et al.  Inheritance Using Contracts & Object Composition , 1997, ECOOP Workshops.

[25]  WegnerPeter Concepts and paradigms of object-oriented programming , 1990 .

[26]  Guy L. Steele,et al.  The Java Language Specification , 1996 .