Abstract
In previous work on the language \(\mathcal{F}ickle\) and its extension \(\mathcal{F}ickle_{II}\) Dezani and us introduced language features for object re-classification for imperative, typed, class-based, object-oriented languages.
In this paper we present the language \(\mathcal{F}ickle_{3}\), which on one side refines \(\mathcal{F}ickle_{II}\) with more expressive effect annotations, and on the other eliminates the need to declare explicitly which are the classes of the objects that may be re-classified. Therefore, \(\mathcal{F}ickle_{3}\) allows to correctly type meaningful programs which \(\mathcal{F}ickle_{II}\) rejects. Moreover, re-classification may be decided by the client of a class, allowing unanticipated object re-classification. As for \(\mathcal{F}ickle_{II}\), also the type and effect system for \(\mathcal{F}ickle_{3}\) guarantees that, even though objects may be re-classified across classes with different members, they will never attempt to access non existing members.
The type and effect system of \(\mathcal{F}ickle_{3}\) has some significant differences from the one of \(\mathcal{F}ickle_{II}\). In particular, besides the fact that intra-class type checking has to track the more refined effects, when a class is combined with other classes some additional inter-class checking is introduced.
Work partially supported by IST-2001-33477 DART, MIUR Cofin ‘01 NAPOLI, and MIUR Cofin’02 McTati projects. The founding bodies are not responsible for any use that might be made of the results presented here.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ancona, D., Anderson, C., Damiani, F., Drossopoulou, S., Giannini, P., Zucca, E.: An Effective Translation of Fickle into Java. In: Restivo, A., Ronchi Della Rocca, S., Roversi, L. (eds.) ICTCS 2001. LNCS, vol. 2202, pp. 215–234. Springer, Heidelberg (2001)
Chambers, C.: Predicate Classes. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 268–296. Springer, Heidelberg (1993)
P. Costanza. Dynamic Object Replacement and Implementation-Only Classes. In WCOP 2001 (at ECOOP 2001) (2001), Available from http://www.cs.uni-bonn.de/~costanza/implementationonly.pdf
Damiani, F., Dezani-Ciancaglini, M., Drossopoulou, S., Giannini, P.: Refined Effects for Re-classification: Fickle III (2002). Report for the IST-2001-33477 DART project - available at the http://www.cee.hw.ac.uk/DART/reports/D3.1/DDDG02b.pdf
Drossopoulou, S., Damiani, F., Dezani-Ciancaglini, M., Giannini, P.: Fickle: Dynamic Object Re-classification. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 130–149. Springer, Heidelberg (2001); A shorter version is available in: Electronic proceedings of FOOL8, http://www.cs.williams.edu/~kim/FOOL/
Drossopoulou, S., Damiani, F., Dezani-Ciancaglini, M., Giannini, P.: More Dynamic Object Re-classification: Fickle II. ACM Transactions On Programming Languages and Systems 24(2), 153–191 (2002)
Drossopoulou, S., Eisenbach, S., Khurshid, S.: Is the Java Type System Sound? Theory and Practice of Object Systems 5(1), 3–24 (1999)
Ghelli, G., Palmerini, D.: Foundations of Extended Objets with Roles (extended abstract). In: FOOL6 (1999), Available from http://www.cs.williams.edu/~kim/FOOL/FOOL6.html
Lucassen, M., Gifford, D.K.: Polymorphic Effect Systems. In: POPL 1988, pp. 47–57. ACM Press, New York (1988)
Serrano, M.: Wide Classes. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 391–415. Springer, Heidelberg (1999)
Tailvasaari, A.: Object Oriented Programming with Modes. Journal of Object Oriented Programming 6(3), 27–32 (1993)
Talpin, J.-P., Jouvelot, P.: Polymorphic Type, Region and Effect Inference. Journal of Functional Programming 2(3), 245–271 (1992)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Damiani, F., Drossopoulou, S., Giannini, P. (2003). Refined Effects for Unanticipated Object Re-classification: \(\mathcal{F}ickle_{\rm 3}\) . In: Blundo, C., Laneve, C. (eds) Theoretical Computer Science. ICTCS 2003. Lecture Notes in Computer Science, vol 2841. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45208-9_9
Download citation
DOI: https://doi.org/10.1007/978-3-540-45208-9_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20216-5
Online ISBN: 978-3-540-45208-9
eBook Packages: Springer Book Archive