MultiJava: Design Rationale, Compiler Implementation, and Applications (May 2006)

Curtis Clifton, Todd Millstein, Gary T. Leavens, and Craig Chambers wrote this paper, which appeared in ACM TOPLAS, volume 28, number 3, May 2006, pages 517-575. It provides the most comprehensive and readable description of the language. The paper describes MultiJava’s open classes and multiple dispatch with a pair of motivating examples. It also describes the key techniques used in compiling MultiJava source code to run on the standard Java Virtual Machine. Finally, an extensive discussion of actual use cases for MultiJava provides insight into many useful applications of the language’s features. A pre-print (ISU TR#04-01) is available with an text abstract, and full text in pdf format. A bibtex entry for the paper is also available.

Relaxed MultiJava (March 2003)

Todd Millstein, Mark Reay, and Craig Chambers developed Relaxed MultiJava, a variant of MultiJava that permits a greater range of program extension by replacing some compile-time errors with warnings and adding additional load-time checks. A pre-print of a paper on Relaxed MultiJava is available in pdf format.

OOPSLA 2001 Poster (October 2001)

Our MultiJava compiler was introduced at the poster session for OOPSLA 2001. An extended abstract of our poster is available here.

Curtis Clifton's Master's Thesis (December 2001)

Curtis Clifton's master's thesis presents the design of MultiJava in greater detail, including some changes to the language design of the original OOPSLA 2000 paper. The thesis gives an overview of the architecture of mjc and presents the results of an empirical evaluation of the language. A technical report version of his thesis is available in pdf format. A text abstract and a bibtex entry are also available.

OOPSLA 2000 Article (October 2000)

MultiJava was first introduced in a paper at OOPSLA 2000. A technical report version of that paper is available as a text abstract and as full text in pdf format. The paper gives a quick introduction to the main additional features of MultiJava (beyond those of regular Java).

Other Related Papers

Members of the MultiJava team have also done work on issues of extensibility and modularity that does not directly pertain to MultiJava. Some interesting papers on this work can be found on Todd Millstein’s home page and Curtis Clifton’s research page.

Page last modified Monday, June 5, 2006.