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.
Preview
Unable to display preview. Download preview PDF.
References
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.
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.
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.
Borning A. H. and Ingalls D. H. H. Multiple inheritance in Smalltalk-80. In Proceedings at the National Conference on AI, Pittsburgh, 1982.
Bracha G, and Cook W.. Mixin-based inheritance. In Proceedings OOPSLA/ECOOP '90, ACM SIGPLAN Notices, vol. 25, no. 10, pp. 303–311, 1990.
Bracha G. and Lindstrom G. Modularity meets inheritance. Technical Report UUCS-91-017, University of Utah, 1991.
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.
Chambers C. Predicate classes. In W.Olthoff, ed., Proceedings ECOOP '93, LNCS 707, pp. 268–297, Springer-Verlag, 1993.
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.
Goldberg A. and Robson D. Smalltalk 80: the Language and its implementation. Addison-Wesley, 1983.
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.
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.
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
Keene S. Object-oriented programming in Common Lisp: a programmer's guide to CLOS, Addison-Wesley, 1989.
Kiczales G., des Rivières J., Bobrow D. G. The art of the metaobject protocol, MIT Press, 1991
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).
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).
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.
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.
McAffer J. Meta-level programming with CodA. In W. Olthoff, ed., Proceedings of the ECOOP '95, LNCS 952, pp. 190–214. Springer-Verlag, 1995.
Meyer B. Object-oriented software construction. Prentice Hall, 1988.
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.
Mezini M. Dynamic metaclass construction for an explicit specialization interface. In Proceedings of the Reflection '96 Conference, pp. 203–219, 1996.
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.
Mezini M. Ph.D. Thesis (in preparation)
Moon D. A. Object-oriented programming with Flavors. In Proceedings OOPSLA '86, ACM SIGPLAN Notices, vol. 21, no. 11, pp. 1–8, 1986.
Nierstrasz O and Tsichritzis D. Object-oriented software composition. Prentice Hall, 1995
Prehofer C. Feature-oriented programming. To appear in Proceedings of ECOOP '97.
Seiter L. M. Design Patterns for Managing Evolution. Ph.D. Thesis, Northeastern University, 1996.
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.
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.
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.
Stein L. A. Delegation is inheritance. In Proceedings OOPSLA '87, ACM SIGPLAN Notices, vol. 22, no. 12, pp. 138–146, 1987.
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.
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.
Stroustrup B. The C++ programming language. Addison-Wesley, 1986.
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.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Rights 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