MultiJava: Design Rationale, Compiler Implementation, and Applications

Uloženo v:
Podrobná bibliografie
Název: MultiJava: Design Rationale, Compiler Implementation, and Applications
Autoři: Clifton, Curtis, Millstein, Todd, Leavens, Gary, Chambers, Craig
Přispěvatelé: Computer Science
Zdroj: archive/lib.dr.iastate.edu/cs_techreports/326/paper.pdf|||Fri Jan 14 23:36:17 UTC 2022
Rok vydání: 2004
Sbírka: Digital Repository @ Iowa State University
Témata: Programming Languages and Compilers, Open Classes, Open Objects, Extensible Classes, Extensible External Methods, External Methods, Multimethods, Method Families, Generic Functions, % so people searching on this term can find it Object-oriented Programming Languages, Single Dispatch, Multiple Dispatch, Encapsulation, Modularity, Static Typechecking, Subtyping, Inheritance, Java Language, MultiJava Language, Separate Compilation, Expression Problem, Binary Method Problem, Augmenting Method Problem
Popis: MultiJava is a conservative extension of the Java programming language that adds symmetric multiple dispatch and open classes. Among other benefits, multiple dispatch provides a solution to the binary method problem. Open classes provide a solution to the extensibility problem of object-oriented programming languages, allowing the modular addition of both new types and new operations to an existing type hierarchy. This paper illustrates and motivates the design of MultiJava and describes its modular static typechecking and modular compilation strategies. Although MultiJava extends Java, the key ideas of the language design are applicable to other object-oriented languages, such as C# and C++, and even, with some modifications, to functional languages such as ML. This paper also discusses the variety of application domains in which MultiJava has been successfully used by others, including pervasive computing, graphical user interfaces, and compilers. MultiJava allows users to express desired programming idioms in a way that is declarative and supports static typechecking, in contrast to the tedious and type-unsafe workarounds required in Java. MultiJava also provides opportunities for new kinds of extensibility that are not easily available in Java.
Druh dokumentu: article in journal/newspaper
Popis souboru: application/pdf
Jazyk: unknown
Relation: archive/lib.dr.iastate.edu/cs_techreports/326/; 1309; 5539905; cs_techreports/326; https://dr.lib.iastate.edu/handle/20.500.12876/20156
Dostupnost: https://dr.lib.iastate.edu/handle/20.500.12876/20156
https://hdl.handle.net/20.500.12876/20156
Přístupové číslo: edsbas.894AF84F
Databáze: BASE
Popis
Abstrakt:MultiJava is a conservative extension of the Java programming language that adds symmetric multiple dispatch and open classes. Among other benefits, multiple dispatch provides a solution to the binary method problem. Open classes provide a solution to the extensibility problem of object-oriented programming languages, allowing the modular addition of both new types and new operations to an existing type hierarchy. This paper illustrates and motivates the design of MultiJava and describes its modular static typechecking and modular compilation strategies. Although MultiJava extends Java, the key ideas of the language design are applicable to other object-oriented languages, such as C# and C++, and even, with some modifications, to functional languages such as ML. This paper also discusses the variety of application domains in which MultiJava has been successfully used by others, including pervasive computing, graphical user interfaces, and compilers. MultiJava allows users to express desired programming idioms in a way that is declarative and supports static typechecking, in contrast to the tedious and type-unsafe workarounds required in Java. MultiJava also provides opportunities for new kinds of extensibility that are not easily available in Java.