Sciweavers

ECOOP
2007
Springer

Morphing: Safely Shaping a Class in the Image of Others

14 years 6 months ago
Morphing: Safely Shaping a Class in the Image of Others
We present MJ: a language for specifying general classes whose members are produced by iterating over members of other classes. We call this technique “class morphing” or just “morphing”. Morphing extends the notion of genericity so that not only types of methods and fields, but also the structure of a class can vary according to type variables. This offers the ability to express common programming patterns in a highly generic way that is otherwise not supported by conventional techniques. For instance, morphing lets us write generic proxies (i.e., classes that can be parameterized with another class and export the same public methods as that class); default implementations (e.g., a generic do-nothing type, configurable for any interface); semantic extensions (e.g., specialized behavior for methods that declare a certain annotation); and more. MJ’s hallmark feature is that, despite its emphasis on generality, it allows modular type checking: an MJ class can be checked inde...
Shan Shan Huang, David Zook, Yannis Smaragdakis
Added 07 Jun 2010
Updated 07 Jun 2010
Type Conference
Year 2007
Where ECOOP
Authors Shan Shan Huang, David Zook, Yannis Smaragdakis
Comments (0)