Title of article
Featherweight Java with dynamic and static overloading
Author/Authors
Lorenzo Bettini، نويسنده , , Sara Capecchi and Betti Venneri، نويسنده , , Betti Venneri، نويسنده ,
Issue Information
ماهنامه با شماره پیاپی سال 2009
Pages
18
From page
261
To page
278
Abstract
We propose FMJ (Featherweight Multi Java), an extension of Featherweight Java with encapsulated multi-methods thus providing dynamic overloading. Multi-methods (collections of overloaded methods associated to the same message, whose selection takes place dynamically instead of statically as in standard overloading) are a useful and flexible mechanism which enhances re-usability and separation of responsibilities. However, many mainstream languages, such as, e.g., Java, do not provide it, resorting to only static overloading.The proposed extension is conservative and type safe: both “message-not-understood” and “message-ambiguous” are statically ruled out. Possible ambiguities are checked during type checking only on method invocation expressions, without requiring to inspect all the classes of a program. A static annotation with type information guarantees that in a well-typed program no ambiguity can arise at run-time. This annotation mechanism also permits modeling static overloading in a smooth way.Our core language can be used as the formal basis for an actual implementation of dynamic (and static) overloading in Java-like languages.
Keywords
Type system , multi-methods , Static overloading , dynamic overloading , object-oriented languages , Featherweight Java
Journal title
Science of Computer Programming
Serial Year
2009
Journal title
Science of Computer Programming
Record number
1080059
Link To Document