Advertisement

Fickle: Dynamic Object Re-classification

  • Sophia Drossopoulou
  • Ferruccio Damiani
  • Mariangiola Dezani-Ciancaglini
  • Paola Giannini
Conference paper
Part of the Lecture Notes in Computer Science book series (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.

Keywords

State Class Class Membership Operational Semantic Method Call Target Class 
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]
    M. Abadi and L. Cardelli. A Theory of Objects. Springer, 1996.Google Scholar
  2. [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. [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.CrossRefGoogle Scholar
  4. [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. [5]
    C. Anderson. Implementing Fickle, Imperial College, final year thesis-to appear, June 2001.Google Scholar
  6. [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. [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. [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. [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. [10]
    C. Chambers. Predicate Classes. In ECOOP’93, volume 707 of LNCS, pages 268–296. Springer, 1993.Google Scholar
  11. [11]
    C. Chambers and G. Leavens. Type Checking Modules for Multimethods. ACM Transactions on Programming Languages and Systems, 17(6):805–843, 1995.CrossRefGoogle Scholar
  12. [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. [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. [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. [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.zbMATHMathSciNetGoogle Scholar
  16. [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. [17]
    T. Freeman and F. Pfenning. Refinement types for ML. In SIGPLAN’ 91, pages 268–277. ACM Press, 1991.Google Scholar
  18. [18]
    E. Gamma, R. Helm, R. Johnson, and J. Vlissidis. Design Pattersn. Addison-Wesley, 1994.Google Scholar
  19. [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. [20]
    A. Goldberg and D. Robson. Smalltlak-80: The Language and its Implementation. Addison-Wesley, 1985.Google Scholar
  21. [21]
    W.L. Hürsch. Should Superclasses be Abstract? In ECOOP’94, volume 821 of LNCS, pages 12–31. Springer, 1994.Google Scholar
  22. [22]
    R. Jarman and S. Drossopoulou. Examples in Fickle. Available from http://www.di.unito.it/~damiani/papers/dor.html.
  23. [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. [24]
    M. Lucassen and D.K. Gifford. Polymorphic effect systems. In POPL’88, pages 47–57. ACM press, 1988.Google Scholar
  25. [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. [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. [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. [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. [29]
    M. Serrano. Wide Classes. In ECOOP’99, volume 1628 of LNCS, pages 391–415. Springer, 1999.Google Scholar
  30. [30]
    A. Tailvasaari. Object Oriented Programming with Modes. Journal of Object Oriented Programming, pages 27–32, 1992.Google Scholar
  31. [31]
    J.-P. Talpin and P. Jouvelot. Polymorphic Type, Region and Effect Inference. Journal of Functional Programming, 2(3):245–271, 1992zbMATHMathSciNetCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Sophia Drossopoulou
  • Ferruccio Damiani
  • Mariangiola Dezani-Ciancaglini
  • Paola Giannini

There are no affiliations available

Personalised recommendations