Fickle: Dynamic Object Re-classification
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.
KeywordsState Class Class Membership Operational Semantic Method Call Target Class
Unable to display preview. Download preview PDF.
- M. Abadi and L. Cardelli. A Theory of Objects. Springer, 1996.Google Scholar
- 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
- 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.
- C. Anderson. Implementing Fickle, Imperial College, final year thesis-to appear, June 2001.Google Scholar
- 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
- 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
- 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
- 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
- C. Chambers. Predicate Classes. In ECOOP’93, volume 707 of LNCS, pages 268–296. Springer, 1993.Google Scholar
- 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
- 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.
- 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
- 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
- T. Freeman and F. Pfenning. Refinement types for ML. In SIGPLAN’ 91, pages 268–277. ACM Press, 1991.Google Scholar
- E. Gamma, R. Helm, R. Johnson, and J. Vlissidis. Design Pattersn. Addison-Wesley, 1994.Google Scholar
- 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.
- A. Goldberg and D. Robson. Smalltlak-80: The Language and its Implementation. Addison-Wesley, 1985.Google Scholar
- W.L. Hürsch. Should Superclasses be Abstract? In ECOOP’94, volume 821 of LNCS, pages 12–31. Springer, 1994.Google Scholar
- R. Jarman and S. Drossopoulou. Examples in Fickle. Available from http://www.di.unito.it/~damiani/papers/dor.html.
- 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
- M. Lucassen and D.K. Gifford. Polymorphic effect systems. In POPL’88, pages 47–57. ACM press, 1988.Google Scholar
- 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
- D. Rémy. From Classes to Objects via Subtyping. In ESOP’98, volume 1381 of LNCS, pages 200–220. Springer, 1995.Google Scholar
- 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.
- 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.
- M. Serrano. Wide Classes. In ECOOP’99, volume 1628 of LNCS, pages 391–415. Springer, 1999.Google Scholar
- A. Tailvasaari. Object Oriented Programming with Modes. Journal of Object Oriented Programming, pages 27–32, 1992.Google Scholar