Chronological Overview 
 Type-Hierarchical Overview 
Formal Methods in Computing
(Most of the papers antecedent to 1995
are not included in the list)
FRAMES  NO FRAME 

BCV09a (Article)
Author(s) Lorenzo Bettini, Sara Capecchi and Betti Venneri
Title« Featherweight Java with Dynamic and StaticOverloading  »
JournalScience of Computer Programming
Volume74
Number5-6
Page(s)261-278
Year2009
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 raise 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.

BibTeX code

@article{BCV09a,
  number = {5-6},
  volume = {74},
  author = {Bettini, Lorenzo and Capecchi, Sara and Venneri, Betti},
  title = {{Featherweight Java with Dynamic and StaticOverloading }},
  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 raise 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.},
  publisher = {Springer},
  journal = {Science of Computer Programming},
  year = {2009},
  pages = {261-278},
}


 Chronological Overview 
 Type-Hierarchical Overview 
Formal Methods in Computing
(Most of the papers antecedent to 1995
are not included in the list)
FRAMES  NO FRAME 

This document was generated by bib2html 3.3.
(Modified by Luca Paolini, under the GNU General Public License)

Valid HTML 4.01!