ACM Home Page
Please provide us with feedback. Feedback
Relaxed MultiJava: balancing extensibility and modular typechecking
Full text PdfPdf (162 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications table of contents
Anaheim, California, USA
SESSION: Language design table of contents
Pages: 224 - 240  
Year of Publication: 2003
ISBN:1-58113-712-5
Also published in ...
Authors
Todd Millstein  University of Washington, Seattle, WA
Mark Reay  University of Washington, Seattle, WA
Craig Chambers  University of Washington, Seattle, WA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 39,   Citation Count: 8
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/949305.949325
What is a DOI?

ABSTRACT

We present the rationale, design, and implementation of Relaxed MultiJava (RMJ), a backward-compatible extension of Java that allows programmers to add new methods to existing classes and to write multimethods. Previous languages supporting these forms of extensibility either restrict their usage to a limited set of programming idioms that can be modularly typechecked (and modularly compiled) or simply forego modular typechecking altogether. In contrast, RMJ supports the new language features in a virtually unrestricted form while still providing mostly-modular static typechecking and fully-modular compilation. In some cases, the RMJ compiler will warn that the potential for a type error exists, but it will still complete compilation. In those cases, a custom class loader transparently performs load-time checking to verify that the potential error is never realized. RMJ's compiler and custom loader cooperate to keep load-time checking costs low. We report on qualitative and quantitative experience with our implementation of RMJ.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Proceedings of the 1992 European Conference on Object-Oriented Programming, LNCS 615, Utrecht, The Netherlands, June 1992. Springer-Verlag.
 
2
 
3
 
4
5
 
6
G. Baumgartner, M. Jansche, and K. Laufer. Half & half: Multiple dispatch and retroactive abstraction for java. Technical Report OSU-CISRC-5/01-TR08, Department of Computer and Information Science, The Ohio State University, Mar. 2002.
7
 
8
B. Bokowski and A. Spiegel. Barat -- a front-end for java. Technical Report Technical Report B-98-09, Freie Universitat Berlin, FB Mathematik und Informatik, Dec. 1998.
9
 
10
G. Bracha. Personal communication. Jan. 2003.
11
12
 
13
 
14
C. Chambers. The Cecil language: Specification and rationale. Technical Report UW-CSE-93-03-05, Department of Computer Science and Engineering. University of Washington, Mar. 1993. Revised, March 1997.
 
15
C. Chambers. Towards Diesel, a next-generation OO language after Cecil. Invited talk, the Fifth Workshop of Foundations of Object-Oriented Langauges, San Diego, California, Jan. 1998.
16
 
17
C. Clifton. MultiJava: Design, implementation, and evaluation of a Java-compatible language supporting modular open classes and symmetric multiple dispatch. Technical Report 01-10, Department of Computer Science, Iowa State University, Ames, Iowa, 50011, Nov. 2001. Available from multijava.sourceforge.net.
18
19
 
20
Proceedings of the 1998 European Conference on Object-Oriented Programming, LNCS 1445, Brussels, Belgium, July 1998. Springer-Verlag.
 
21
E. Gamma, R. Helm, R. E. Johnson, and J. Vlissides. Design Patterns. Addison-Wesley, Reading, MA, 1995.
 
22
 
23
C. Grothoff. Walkabout revisited: The runabout. In Proceedings of the 2003 European Conference on Object-Oriented Programming, LNCS 2743, Darmstadt, Germany, July 2003. Springer-Verlag.
24
 
25
 
26
 
27
 
28
29
30
31
 
32
33
 
34
35
 
36
MultiJava home page. http://multijava.sourceforge.net.
 
37
 
38
Proceedings of the 1986 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Portland, OR, Nov. 1986.
 
39
Proceedings of the 1996 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, San Jose, CA, Oct. 1996.
 
40
Proceedings of the 1998 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Vancouver, Canada, Oct. 1998.
41
 
42
 
43
 
44
A. Shalit. The Dylan Reference Manual. Addison-Wesley, Reading, MA, 1996.
 
45
 
46
 
47
 
48
J. Vlissides. Visitor in frameworks. C++ Report, 11(10):40-- 46, November/December 1999.
49

CITED BY  8

Collaborative Colleagues:
Todd Millstein: colleagues
Mark Reay: colleagues
Craig Chambers: colleagues