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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
M. Abadi and L. Cardelli. A Theory of Objects. Springer, 1996.
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.
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.
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.
E. Bertino and G. Guerrini. Objects with Multiple Most Specific Classes. In ECOOP’95, volume 952 of LNCS, pages 102–126. Springer, 1995.
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.
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.
L. Cardelli, J. Donahue, L. Glassman, M. Jordan, B. Kalsow, and G. Nelson. Modula-3 report (revised). Technical report, DEC System Research Center, 1989.
C. Chambers. Predicate Classes. In ECOOP’93, volume 707 of LNCS, pages 268–296. Springer, 1993.
C. Chambers and G. Leavens. Type Checking Modules for Multimethods. ACM Transactions on Programming Languages and Systems, 17(6):805–843, 1995.
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.
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.
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.
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.
T. Freeman and F. Pfenning. Refinement types for ML. In SIGPLAN’ 91, pages 268–277. ACM Press, 1991.
E. Gamma, R. Helm, R. Johnson, and J. Vlissidis. Design Pattersn. Addison-Wesley, 1994.
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.
W.L. Hürsch. Should Superclasses be Abstract? In ECOOP’94, volume 821 of LNCS, pages 12–31. Springer, 1994.
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.
M. Lucassen and D.K. Gifford. Polymorphic effect systems. In POPL’88, pages 47–57. ACM press, 1988.
A. Ravara and V.T. Vasconcelos. Typing non-uniform concurrent objects. In CONCUR’00, volume 1877 of LNCS, pages 474–488. Springer, 2000.
D. Rémy. From Classes to Objects via Subtyping. In ESOP’98, volume 1381 of LNCS, pages 200–220. Springer, 1995.
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.
A. Tailvasaari. Object Oriented Programming with Modes. Journal of Object Oriented Programming, pages 27–32, 1992.
J.-P. Talpin and P. Jouvelot. Polymorphic Type, Region and Effect Inference. Journal of Functional Programming, 2(3):245–271, 1992
Editor information
Editors and Affiliations
Rights 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