Skip to main content

Fickle: Dynamic Object Re-classification

  • Conference paper
  • First Online:

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

Abstract

Re-classification changes at run-time the class membership of an object while retaining its identity. We suggest language features for object re-classification, which could extend an imperative, typed, classbased, object-oriented language.

We present our proposal through the language Fickle. The imperative features combined with the requirement for a static and safe type system provided the main challenges. We develop a type and effect system for Fickle and prove its soundness with respect to the operational semantics. In particular, even though objects may be re-classified across classes with different members, they will never attempt to access non-existing members.

This research was supported in part by MURST Cofin’ 99 TOSCA Project, CNRGNSAGA, and the EPSRC (Grant Ref GR/L 76709).

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. M. Abadi and L. Cardelli. A Theory of Objects. Springer, 1996.

    Google Scholar 

  2. O. Agesen, L. Bak, C. Chambers, B.W. Chang, U. Hölzle, J. Maloney, R.B. Smith, and D. Ungar. The SELF programmers’s reference manual, version 2.0. Technical report, SUN Microsystems, 1992.

    Google Scholar 

  3. O. Agesen, J. Palsberg, and M.I. Schwartzbach. Type inference of Self: Analysis of objects with dynamic and multiple inheritance. Software-Practice and Experience, 25(9):975–995, 1995.

    Article  Google Scholar 

  4. D. Ancona, C. Anderson, F. Damiani, S. Drossopoulou, P. Giannini, and E. Zucca. An Effective Translation of Fickle into Java, April 2001. Technical Report, DISI University of Genova and Imperial College. Available from http://www.di.unito.it/~damiani/dor.html.

  5. C. Anderson. Implementing Fickle, Imperial College, final year thesis-to appear, June 2001.

    Google Scholar 

  6. E. Bertino and G. Guerrini. Objects with Multiple Most Specific Classes. In ECOOP’95, volume 952 of LNCS, pages 102–126. Springer, 1995.

    Google Scholar 

  7. V. Bono, M. Bugliesi, M. Dezani-Ciancaglini, and L. Liquori. Subtyping Constraints for Incomplete Objects. In CAAP’97, volume 1214 of LNCS, pages 465–477. Springer, 1997.

    Google Scholar 

  8. P. Canning, W. Cook, W. Hill, and W. Olthoff. Interfaces for Strongly Typed Object Oriented Languages. In OOPSLA’89, pages 457–467. ACM press, 1989.

    Google Scholar 

  9. L. Cardelli, J. Donahue, L. Glassman, M. Jordan, B. Kalsow, and G. Nelson. Modula-3 report (revised). Technical report, DEC System Research Center, 1989.

    Google Scholar 

  10. C. Chambers. Predicate Classes. In ECOOP’93, volume 707 of LNCS, pages 268–296. Springer, 1993.

    Google Scholar 

  11. C. Chambers and G. Leavens. Type Checking Modules for Multimethods. ACM Transactions on Programming Languages and Systems, 17(6):805–843, 1995.

    Article  Google Scholar 

  12. P. Di Gianantonio, F. Honsell, and L. Liquori. A Lambda Calculus of Objects with Self-inflicted Extension. In OOPSLA’98, pages 166–178. ACM press, 1998.

    Google Scholar 

  13. S. Drossopoulou, M. Dezani-Ciancaglini, F. Damiani, and P. Giannini. Objects Dynamically Changing Class. Technical report, Imperial College, August 1999. Available from http://www.di.unito.it/~dezani/odcc.html.

  14. M.D. Ernst, C. Kaplan, and C. Chambers. Predicate Dispatching: A Unified Theory of Dispatch. In ECOOP’98, volume 1445 of LNCS, pages 186–211. Springer, 1998.

    Google Scholar 

  15. K. Fisher, F. Honsell, and J.C. Mitchell. A Lambda Calculus of Objects and Method Specialization. In Nordic Journal of Computing 1(1), pages 3–37, 1994.

    MATH  MathSciNet  Google Scholar 

  16. K. Fisher and J.C. Mitchell. A Delegation-based Object Calculus with Subtyping. In FCT’95, volume 965 of LNCS, pages 42–61. Springer, 1995.

    Google Scholar 

  17. T. Freeman and F. Pfenning. Refinement types for ML. In SIGPLAN’ 91, pages 268–277. ACM Press, 1991.

    Google Scholar 

  18. E. Gamma, R. Helm, R. Johnson, and J. Vlissidis. Design Pattersn. Addison-Wesley, 1994.

    Google Scholar 

  19. G. Ghelli and D. Palmerini. Foundations of Extensible Objets with Roles. In FOOL’06, 1999. Available from http://www.cs.williams.edu/~kim/FOOL/FOOL6.html.

  20. A. Goldberg and D. Robson. Smalltlak-80: The Language and its Implementation. Addison-Wesley, 1985.

    Google Scholar 

  21. W.L. Hürsch. Should Superclasses be Abstract? In ECOOP’94, volume 821 of LNCS, pages 12–31. Springer, 1994.

    Google Scholar 

  22. R. Jarman and S. Drossopoulou. Examples in Fickle. Available from http://www.di.unito.it/~damiani/papers/dor.html.

  23. B.B. Kristensen, O.L. Madsen, B. Moller-Pederson, and K. Nygaard. The BETA programming language. In Research Directions in Object-Oriented Programming, pages 7–48. MIT Press, 1987.

    Google Scholar 

  24. M. Lucassen and D.K. Gifford. Polymorphic effect systems. In POPL’88, pages 47–57. ACM press, 1988.

    Google Scholar 

  25. A. Ravara and V.T. Vasconcelos. Typing non-uniform concurrent objects. In CONCUR’00, volume 1877 of LNCS, pages 474–488. Springer, 2000.

    Google Scholar 

  26. D. Rémy. From Classes to Objects via Subtyping. In ESOP’98, volume 1381 of LNCS, pages 200–220. Springer, 1995.

    Google Scholar 

  27. J.C. Riecke and C.A. Stone. Privacy via Subsumption. In FOOL’98, 1998. Available from http://www.cs.williams.edu/~kim/FOOL/FOOL5.html.

  28. T. Scheer and S. Pringle. Ten Practical Limitations of Object Orientation, November 1998. OOPSLA Poster Session, Available from http://www.acm.org/sigplan/oopsla/oopsla98/fp/posters/10.html.

  29. M. Serrano. Wide Classes. In ECOOP’99, volume 1628 of LNCS, pages 391–415. Springer, 1999.

    Google Scholar 

  30. A. Tailvasaari. Object Oriented Programming with Modes. Journal of Object Oriented Programming, pages 27–32, 1992.

    Google Scholar 

  31. J.-P. Talpin and P. Jouvelot. Polymorphic Type, Region and Effect Inference. Journal of Functional Programming, 2(3):245–271, 1992

    Article  MATH  MathSciNet  Google Scholar 

Download references

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Drossopoulou, S., Damiani, F., Dezani-Ciancaglini, M., Giannini, P. (2001). Fickle: Dynamic Object Re-classification. In: Knudsen, J.L. (eds) ECOOP 2001 — Object-Oriented Programming. ECOOP 2001. Lecture Notes in Computer Science, vol 2072. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45337-7_8

Download citation

  • DOI: https://doi.org/10.1007/3-540-45337-7_8

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42206-8

  • Online ISBN: 978-3-540-45337-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics