Featherweight Java with dynamic and static overloading
Autor: | Sara Capecchi, Betti Venneri, Lorenzo Bettini |
---|---|
Rok vydání: | 2009 |
Předmět: |
Multi-methods
Object-oriented programming Java Programming language Computer science media_common.quotation_subject Distributed computing Dynamic overloading Object-oriented languages Ambiguity Extension (predicate logic) Type (model theory) computer.software_genre Type system Annotation Type checking Selection (linguistics) Static overloading computer Software Featherweight Java computer.programming_language media_common |
Zdroj: | Science of Computer Programming. 74(5-6):261-278 |
ISSN: | 0167-6423 |
DOI: | 10.1016/j.scico.2009.01.007 |
Popis: | 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. |
Databáze: | OpenAIRE |
Externí odkaz: |