Skip to main content

Dynamic object evolution without name collisions

  • Conference paper
  • First Online:
ECOOP'97 — Object-Oriented Programming (ECOOP 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1241))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. 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.

    Article  Google Scholar 

  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. 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. Bracha G, and Cook W.. Mixin-based inheritance. In Proceedings OOPSLA/ECOOP '90, ACM SIGPLAN Notices, vol. 25, no. 10, pp. 303–311, 1990.

    Article  Google Scholar 

  6. Bracha G. and Lindstrom G. Modularity meets inheritance. Technical Report UUCS-91-017, University of Utah, 1991.

    Google Scholar 

  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.

    Article  Google Scholar 

  8. Chambers C. Predicate classes. In W.Olthoff, ed., Proceedings ECOOP '93, LNCS 707, pp. 268–297, Springer-Verlag, 1993.

    Google Scholar 

  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.

    Article  Google Scholar 

  10. Goldberg A. and Robson D. Smalltalk 80: the Language and its implementation. Addison-Wesley, 1983.

    Google Scholar 

  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.

    Article  Google Scholar 

  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.

    Article  Google Scholar 

  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, 1991

    Google Scholar 

  14. Keene S. Object-oriented programming in Common Lisp: a programmer's guide to CLOS, Addison-Wesley, 1989.

    Google Scholar 

  15. Kiczales G., des Rivières J., Bobrow D. G. The art of the metaobject protocol, MIT Press, 1991

    Google Scholar 

  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. 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. 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. 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.

    Article  Google Scholar 

  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. Meyer B. Object-oriented software construction. Prentice Hall, 1988.

    Google Scholar 

  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. Mezini M. Dynamic metaclass construction for an explicit specialization interface. In Proceedings of the Reflection '96 Conference, pp. 203–219, 1996.

    Google Scholar 

  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. Mezini M. Ph.D. Thesis (in preparation)

    Google Scholar 

  26. Moon D. A. Object-oriented programming with Flavors. In Proceedings OOPSLA '86, ACM SIGPLAN Notices, vol. 21, no. 11, pp. 1–8, 1986.

    Article  Google Scholar 

  27. Nierstrasz O and Tsichritzis D. Object-oriented software composition. Prentice Hall, 1995

    Google Scholar 

  28. Prehofer C. Feature-oriented programming. To appear in Proceedings of ECOOP '97.

    Google Scholar 

  29. Seiter L. M. Design Patterns for Managing Evolution. Ph.D. Thesis, Northeastern University, 1996.

    Google Scholar 

  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. 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. 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. Stein L. A. Delegation is inheritance. In Proceedings OOPSLA '87, ACM SIGPLAN Notices, vol. 22, no. 12, pp. 138–146, 1987.

    Article  MathSciNet  Google Scholar 

  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. 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. Stroustrup B. The C++ programming language. Addison-Wesley, 1986.

    Google Scholar 

  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. 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.

    Article  Google Scholar 

  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. 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.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mehmet Akşit Satoshi Matsuoka

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Mezini, M. (1997). Dynamic object evolution without name collisions. In: Akşit, M., Matsuoka, S. (eds) ECOOP'97 — Object-Oriented Programming. ECOOP 1997. Lecture Notes in Computer Science, vol 1241. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0053380

Download citation

  • DOI: https://doi.org/10.1007/BFb0053380

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63089-0

  • Online ISBN: 978-3-540-69127-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics