MultiJava: Design, implementation, and evaluation of a Java-compatible language supporting modular open classes and symmetric multiple dispatch

Uloženo v:
Podrobná bibliografie
Název: MultiJava: Design, implementation, and evaluation of a Java-compatible language supporting modular open classes and symmetric multiple dispatch
Autoři: Clifton, Curtis
Přispěvatelé: Computer Science
Zdroj: archive/lib.dr.iastate.edu/cs_techreports/304/tr01_10.pdf|||Fri Jan 14 23:28:43 UTC 2022
Rok vydání: 2001
Sbírka: Digital Repository @ Iowa State University
Témata: Programming Languages and Compilers, Multimethods, generic functions, object-oriented programming languages, single dispatch, multiple dispatch, encapsulation, modularity, static typechecking, subtyping, inheritance, open objects, extensible classes, external methods, Java language, MultiJava language, separate compilation
Popis: This paper describes the design, implementation, and evaluation of MultiJava, a backward-compatible extension to The Java Programming Language� that supports open classes and symmetric multiple dispatch. An open class is one to which new methods can be added without editing the class directly. Multiple dispatch allows the method invoked by a message send to depend on the run-time types of any subset of the argument objects. MultiJava is the first full-scale programming language to support these features while retaining modular static typechecking and compilation. The paper defines the notions of modular editing, typechecking, and compilation, and describes two problems, the augmenting method problem and the binary method problem, that heretofore had not been solved in a modular way. We describe the architecture and key implementation details of our MultiJava compiler, mjc. mjc is open-source and is freely available for downloading. We present an evaluation of MultiJava that demonstrates the ease of extending code written in the language. We also provide empirical results for the performance of MultiJava versus the previous partial solutions to the augmenting method and binary method problems. These results demonstrate that MultiJava�s performance is comparable to that of the partial solutions, while the language provides full solutions to the problems.
Druh dokumentu: article in journal/newspaper
Popis souboru: application/pdf
Jazyk: unknown
Relation: archive/lib.dr.iastate.edu/cs_techreports/304/; 1303; 5498487; cs_techreports/304; https://dr.lib.iastate.edu/handle/20.500.12876/20133
Dostupnost: https://dr.lib.iastate.edu/handle/20.500.12876/20133
https://hdl.handle.net/20.500.12876/20133
Přístupové číslo: edsbas.AF7AAB46
Databáze: BASE
Popis
Abstrakt:This paper describes the design, implementation, and evaluation of MultiJava, a backward-compatible extension to The Java Programming Language� that supports open classes and symmetric multiple dispatch. An open class is one to which new methods can be added without editing the class directly. Multiple dispatch allows the method invoked by a message send to depend on the run-time types of any subset of the argument objects. MultiJava is the first full-scale programming language to support these features while retaining modular static typechecking and compilation. The paper defines the notions of modular editing, typechecking, and compilation, and describes two problems, the augmenting method problem and the binary method problem, that heretofore had not been solved in a modular way. We describe the architecture and key implementation details of our MultiJava compiler, mjc. mjc is open-source and is freely available for downloading. We present an evaluation of MultiJava that demonstrates the ease of extending code written in the language. We also provide empirical results for the performance of MultiJava versus the previous partial solutions to the augmenting method and binary method problems. These results demonstrate that MultiJava�s performance is comparable to that of the partial solutions, while the language provides full solutions to the problems.