Advertisement

Dynamic object evolution without name collisions

  • Mira Mezini
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1241)

Abstract

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.

Keywords

Combination Rule Denotational Semantic Object Behavior Multiple Inheritance Client Interface 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aksit M., Wakita K., Bosch J., Bergmans L., and Yonezawa A. Abstracting object interactions using composition-filters. In Guerraoui R., Nierstrasz O. and Riveill M., eds., Object-based Distributed Processing, LNCS 791, pp 152–184, Springer-Verlag, 1993.Google Scholar
  2. 2.
    Atkins M.S. and Coady M.Y. Adaptable concurrency control for atomic data types. In ACM Transactions on Computer Systems, vol. 10, no. 3, pp. 190–225, 1992.CrossRefGoogle Scholar
  3. 3.
    Black A, Consel C, Pu C, Walpole J., Cowan C, Autrey T., Inouye J, Kethana L., Zhang K., Dream and reality: incremental specialization in a commercial operating system. Technical Report TR-95-001, Oregon Graduate Institute of Science and Technology, 1995.Google Scholar
  4. 4.
    Borning A. H. and Ingalls D. H. H. Multiple inheritance in Smalltalk-80. In Proceedings at the National Conference on AI, Pittsburgh, 1982.Google Scholar
  5. 5.
    Bracha G, and Cook W.. Mixin-based inheritance. In Proceedings OOPSLA/ECOOP '90, ACM SIGPLAN Notices, vol. 25, no. 10, pp. 303–311, 1990.CrossRefGoogle Scholar
  6. 6.
    Bracha G. and Lindstrom G. Modularity meets inheritance. Technical Report UUCS-91-017, University of Utah, 1991.Google Scholar
  7. 7.
    Carré B. and Geib J. M. The point of view notion for multiple inheritance. In Proceedings OOPSLA/ECOOP '90, ACM SIGPLAN Notices, vol. 25, no. 10, pp. 312–321, 1990.CrossRefGoogle Scholar
  8. 8.
    Chambers C. Predicate classes. In W.Olthoff, ed., Proceedings ECOOP '93, LNCS 707, pp. 268–297, Springer-Verlag, 1993.Google Scholar
  9. 9.
    Cook W. and Palsberg J. A denotational semantics of inheritance and its correctness. In Proceedings OOPSLA '89, ACM SIGPLAN Notices, vol. 24, no. 10, pp. 433–443, 1989.CrossRefGoogle Scholar
  10. 10.
    Goldberg A. and Robson D. Smalltalk 80: the Language and its implementation. Addison-Wesley, 1983.Google Scholar
  11. 11.
    Gottlob G., Schrefl M., Roeck B. Extending object-oriented systems with roles. In ACM Transactions on Information Systems, vol.14, no.3, pp 268–296, 1996.CrossRefGoogle Scholar
  12. 12.
    Harrison W. and Ossher H. Subject-oriented programming: (A critique of pure objects). In Proceedings OOPSLA '93, ACM SIGPLAN Notices, vol. 28, no. 10, pp. 411–428, 1993.CrossRefGoogle Scholar
  13. 13.
    Hense A. V. Denotational semantics of an object oriented programming language with explicit wrappers. In Theoretical Aspects of Computer Software 1991, LNCS 526, pp. 548–567, Springer-Verlag, 1991Google Scholar
  14. 14.
    Keene S. Object-oriented programming in Common Lisp: a programmer's guide to CLOS, Addison-Wesley, 1989.Google Scholar
  15. 15.
    Kiczales G., des Rivières J., Bobrow D. G. The art of the metaobject protocol, MIT Press, 1991Google Scholar
  16. 16.
    Kiczales G. Towards a new model of abstraction for the engineering of software. Invited Talk in OOPSLA '94, (http://www.xerox.com/PARC/spl/eca/oi.html).Google Scholar
  17. 17.
    Kiczales G., Irwin J., Lamping J., Loingtier J. M., Lopes C. V., Maeda C, Mendhekar A. A position paper on aspect-oriented programming. (http://www.parc.xerox.com/spl/projects/aop/position.html).Google Scholar
  18. 18.
    Knudsen J. L. Name collision in multiple classification hierarchies. In S. Gjessing and K. Nygaard, eds., Proceedings ECOOP '88, LNCS 322, pp. 93–109, Springer-Verlag, 1988.Google Scholar
  19. 19.
    LaLonde W. R., Thomas D. A., Pugh J. R. An exemplar based Smalltalk. In Proceedings OOPSLA '86, ACM SIGPLAN Notices, vol. 21, no. 11, pp. 322–330, 1986.CrossRefGoogle Scholar
  20. 20.
    McAffer J. Meta-level programming with CodA. In W. Olthoff, ed., Proceedings of the ECOOP '95, LNCS 952, pp. 190–214. Springer-Verlag, 1995.Google Scholar
  21. 21.
    Meyer B. Object-oriented software construction. Prentice Hall, 1988.Google Scholar
  22. 22.
    Mezini M. Supporting evolving objects without giving up classes. In B. Meyer C. Minings and R. Duke, eds., Proceedings of the 18th TOOLS Conference, pp. 183–197, Prentice Hall, 1995.Google Scholar
  23. 23.
    Mezini M. Dynamic metaclass construction for an explicit specialization interface. In Proceedings of the Reflection '96 Conference, pp. 203–219, 1996.Google Scholar
  24. 24.
    Mezini M. Incremental redefinition of open implementations. In Ch. Zimmermann, ed., Advances in object-oriented metalevel architectures and reflection, pp. 265–290, CRC Press Inc., 1996.Google Scholar
  25. 25.
    Mezini M. Ph.D. Thesis (in preparation)Google Scholar
  26. 26.
    Moon D. A. Object-oriented programming with Flavors. In Proceedings OOPSLA '86, ACM SIGPLAN Notices, vol. 21, no. 11, pp. 1–8, 1986.CrossRefGoogle Scholar
  27. 27.
    Nierstrasz O and Tsichritzis D. Object-oriented software composition. Prentice Hall, 1995Google Scholar
  28. 28.
    Prehofer C. Feature-oriented programming. To appear in Proceedings of ECOOP '97.Google Scholar
  29. 29.
    Seiter L. M. Design Patterns for Managing Evolution. Ph.D. Thesis, Northeastern University, 1996.Google Scholar
  30. 30.
    Seiter L. M., Palsberg J, Lieberherr K. Evolution of object behavior using context relations. In Garlan D., ed., Proceedings of the 4th ACM SIFSOFT Symposium on Foundations of Software Engineering, Software Engineering Notes, vol. 21, no. 6, pp. 46–56, ACM Press, 1996.Google Scholar
  31. 31.
    Snyder A. Inheritance and development of encapsulated software components. In B. Shriver and P. Wegner, ed., Research Directions in Object-Oriented Programming, pp. 165–188, MIT Press, 1987.Google Scholar
  32. 32.
    Stein L. A., Lieberman H., Ungar D. The treaty of Orlando. In W. Kim and F. Lochovsky (Eds.), Object-Oriented Concepts, Databases and Applications, pp. 31–48, ACM Press and Addison-Wesley.Google Scholar
  33. 33.
    Stein L. A. Delegation is inheritance. In Proceedings OOPSLA '87, ACM SIGPLAN Notices, vol. 22, no. 12, pp. 138–146, 1987.MathSciNetCrossRefGoogle Scholar
  34. 34.
    Steyaert P., Codenie W., D'Hondt T., D'Hondt K., Lucas C, Van Limberghen M. Nested Mixin-Methods in Agora. In O. Nierstrasz, ed., Proceedings ECOOP '93, LNCS 707, pp. 197–219. Springer-Verlag, 1993.Google Scholar
  35. 35.
    Steyaert P. and De Meuter W. A marriage of class-based and object-based inheritance without unwanted children. In W. Olthoff, ed., Proceedings ECOOP '95, LNCS 952, pp. 127–145, Springer-Verlag, 1995.Google Scholar
  36. 36.
    Stroustrup B. The C++ programming language. Addison-Wesley, 1986.Google Scholar
  37. 37.
    Stroud, R.J. and Wu Z. Using metaobject protocols to implement atomic data types. In W. Olthoff, ed., Proceedings ECOOP '95, LNCS 952, pp. 168–189, Springer-Verlag, 1995.Google Scholar
  38. 38.
    Ungar D. and Smith R. B.. Self: the power of simplicity. In Proceedings OOPSLA '87, ACM SIGPLAN notices, vol. 22, no. 12, pp. 227–242, 1987.CrossRefGoogle Scholar
  39. 39.
    Van Limberghen M. and Mens T. Encapsulation and composition as orthogonal operations on mixins: A solution to multiple inheritance problems. In Object-Oriented Systems, 3(1), 1996.Google Scholar
  40. 40.
    Weihl, W.E. and Liskow, B. Implementation of resilient, atomic data types. ACM Transactions on Programming Languages and Systems, 7(2), pp. 244–269, 1985.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Mira Mezini
    • 1
  1. 1.Department of Electrical Engineering and Computer Science (FB 12)University of SiegenSiegenGermany

Personalised recommendations