Sophia Drossopoulou, Ferruccio Damiani, Paola Giannini
In previous work with Dezani, on the language Fickle, and its extension, FickleII, we introduced language features for object re-classification for imperative, typed, class-based, object-oriented languages.
In this paper we present the language Fickle3, which on one side refines FickleII 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, Fickle3 allows to correctly type meaningful programs which FickleII rejects. Moreover, re-classification may be decided by the client of a class, allowing "unanticipated object re-classification". As for FickleII, also the type and effect system for Fickle3 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 Fickle3 has some significant differences from the one of FickleII. 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.
pubs.doc.ic.ac.uk: built & maintained by Ashok Argent-Katwala.