Dynamic Object Evolution without Name Collisions

Support for modular evolution of objects is required in many application areas. However, existing mechanisms for incremental behavior composition either do not support evolving objects at all, or do not satisfactorily solve the encapsulation and name collision problems associated with them. In this paper, a new approach to behavior composition in a class-based environment is presented. It is based on the encapsulated object model of class-based inheritance, but introduces an additional abstraction layer between objects and classes. By being responsible for the compositional aspects of the behavior of objects, this layer provides support for the evolution of behavior while at the same time solving the name conflicts that may occur. A formal description of the approach is provided and its feasibility is demonstrated by implementing it as a metalevel extension of Smalltalk-80.

[1]  Jens Palsberg,et al.  Evolution of Object Behavior Using Context Relations , 1998, IEEE Trans. Software Eng..

[2]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[3]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[4]  Andreas V. Hense Wrapper Semantics of an Object-Oriented Programming Language with State , 1991, TACS.

[5]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[6]  L. Stein,et al.  Treaty of Orlando , 1987, OOPSLA '87.

[7]  Jens Palsberg,et al.  A Denotational Semantics af Inheritance and its Correctness , 1989 .

[8]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and its Correctness , 1989, OOPSLA.

[9]  Akinori Yonezawa,et al.  Abstracting Object Interactions Using Composition Filters , 1993, ECOOP Workshop.

[10]  Theo D'Hondt,et al.  Nested Mixin-Methods in Agora , 1993, ECOOP.

[11]  Randall B. Smith,et al.  SELF: The power of simplicity , 1987, OOPSLA '87.

[12]  Mira Mezini Dynamic Metaclass Construction for an Explicit Specialization Interface , 1996 .

[13]  Jee Mcaaer Meta-level Programming with Coda , 1995 .

[14]  Calton Pu,et al.  Dream and Reality: Incremental Specialization in a CommercialOperating System , 1995 .

[15]  Craig Chambers,et al.  Predicate Classes , 1993, ECOOP.

[16]  Al Stevens,et al.  C programming , 1990 .

[17]  Alan Borning,et al.  Multiple Inheritance in Smalltalk-BO , 1982, AAAI.

[18]  Patrick Steyaert,et al.  A Marriage of Class- and Object-Based inheritance Without Unwanted Children , 1995, ECOOP.

[19]  Wilf R. LaLonde,et al.  An exemplar based Smalltalk , 1986, OOPLSA '86.

[20]  Gilad Bracha,et al.  Modularity meets inheritance , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[21]  William E. Weihl,et al.  Implementation of resilient, atomic data types , 1985, TOPL.

[22]  Robert J. Stroud,et al.  Using Metaobject Protocols to Implement Atomic Data Types , 1995, ECOOP.

[23]  Lynn Andrea Stein,et al.  Delegation is inheritance , 1987, OOPSLA '87.

[24]  M A R C V A N L I M B E R G H E N,et al.  Encapsulation and composition as orthogonal operators on mixins: a solution to multiple inheritance problems , 1996 .

[25]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[26]  M. Stella Atkins,et al.  Adaptable concurrency control for atomic data types , 1992, TOCS.

[27]  Jeff McAffer Meta-level Programming with CodA , 1995, ECOOP.

[28]  Sonya E. Keene,et al.  Object-oriented programming in COMMON LISP - a programmer's guide to CLOS , 1989 .

[29]  Jean-Marc Geib,et al.  The point of view notion for multiple inheritance , 1990, OOPSLA/ECOOP '90.

[30]  Michael Schrefl,et al.  Extending object-oriented systems with roles , 1996, TOIS.

[31]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[32]  Mira Mezini Supporting Evolving Objects Without Giving Up Classes , 1995 .

[33]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[34]  David A. Moon Object-oriented programming with flavors , 1986, OOPSLA 1986.

[35]  Jørgen Lindskov Knudsen Name Collision in Multiple Classification Hierarchies , 1988, ECOOP.

[36]  Tom Mens,et al.  Encapsulation and composition as orthogonal operators on mixins: a solution to multiple inheritance problems , 1996, Object Oriented Syst..

[37]  Oscar Nierstrasz,et al.  Object-oriented software composition , 1995 .