skip to main content
10.1145/1596655.1596665acmconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
research-article

Three approaches to object evolution

Published:27 August 2009Publication History

ABSTRACT

Dynamic object reclassification allows changes to the type of an object at runtime. This paper makes the case for object evolution, a restriction of general reclassification by which an object may gain, but never lose properties. We argue that evolution is an expressive and useful language construct and can be implemented efficiently. Further, the monotonicity property of evolution promotes static type-safety better than general reclassification. We describe three concrete variants of evolution, relying on inheritance, mixins and shakeins, and explain how any combination of these can be integrated into a concrete programming language. We chart the language design space, mention our implementation, and introduce the notion of evolvers, a critical mechanism for maintaining class invariants in the course of reclassification.

References

  1. A. Albano et al. Fibonacci: A programming language for object databases. The VLDB J., 4(3):403--444, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. Ancona et al. Jam-designing a Java extension with mixins. ACM Trans. on Prog. Lang. Syst., 25(5), 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. K. Beck. Instance specific behavior: how and why. The Smalltalk Report, 2(6):13--15, March-April 1993.Google ScholarGoogle Scholar
  4. J. Bloch. Effective Java, 2nd Edition. Addison-Wesley, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. G. Bracha and W. R. Cook. Mixin-based inheritance. In OOPSLA/ECOOP'90. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Chambers. Predictable classes. In ECOOP'93.Google ScholarGoogle Scholar
  7. T. Cohen and J. Gil. AspectJ2EE = AOP+J2EE. In ECOOP'04.Google ScholarGoogle Scholar
  8. T. Cohen and J. Gil. Shakeins: Non-intrusive aspects for middleware frameworks. In Trans. AOSD, Nov. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. P. Costanza. Dynamic replacement of active objects in the Gilgul programming language. In IFIP/ACM Working Conf. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. F. Damiani et al. Re-classification and multi-threading: FickleMT. In SAC'04. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. F. Damiani et al. Refined effects for unanticipated object re-classification: Fickle3 (extended abstract). In ICTCS'03.Google ScholarGoogle Scholar
  12. S. Drossopoulou et al. Fickle: Dynamic object re-classification. In ECOOP'01. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Drossopoulou et al. More dynamic object re-classification: FickleII. ACM TOPLAS, March 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. E. Gamma et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. G. Ghelli. Foundations for extensible objects with roles. Inf. Comput., 175(1):50--75, 2002.Google ScholarGoogle ScholarCross RefCross Ref
  16. G. Ghelli and D. Palmerini. Foundations of extensible objects with roles (extended abstract). In FOOL'6, 1999.Google ScholarGoogle Scholar
  17. P. D. Gianantonio et al. A lambda calculus of objects with self-inflicted extension. In OOPSLA'98. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Goldberg and D. Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Y. Hollander, M. Morley, and A. Noy. The e language: A fresh separation of concerns. In TOOLS'01 Europe. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. P. Kenens et al. An AOP case with static and dynamic aspects. In ECOOP'98 Workshop Reader. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. G. Kiczales et al. An overview of AspectJ. In ECOOP'01. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. B. Meyer. Object Oriented Software Construction, 2nd ed. Prentice-Hall, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. R. Pawlak et al. JAC: An aspect-based distributed dynamic framework. Soft. - Pract. and Exper., 34(12), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. A. Popovici, T. R. Gross, and G. Alonso. Dynamic weaving for aspect-oriented programming. In AOSD'02. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Serrano. Wide classes. In ECOOP'99.Google ScholarGoogle Scholar
  26. A. Taivalsaari. Object-oriented programming with modes. J. of OO Prog., 6(3):25--32, June 1993.Google ScholarGoogle Scholar

Index Terms

  1. Three approaches to object evolution

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          PPPJ '09: Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
          August 2009
          200 pages
          ISBN:9781605585987
          DOI:10.1145/1596655

          Copyright © 2009 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 27 August 2009

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate29of58submissions,50%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader