| MultiJava: modular open classes and symmetric multiple dispatch for Java |
| Full text |
Pdf
(197 KB)
|
| Source
|
Conference on Object Oriented Programming Systems Languages and Applications
archive
Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
table of contents
Minneapolis, Minnesota, United States
Pages: 130 - 145
Year of Publication: 2000
ISBN:1-58113-200-X
Also published in ...
|
|
Authors
|
|
Curtis Clifton
|
Department of Computer Science, Iowa State University, 226 Atanasoff Hall, Ames, IA
|
|
Gary T. Leavens
|
Department of Computer Science, Iowa State University, 226 Atanasoff Hall, Ames, IA
|
|
Craig Chambers
|
Department of Computer Science and Engineering, University of Washington, Box 352350, Seattle, WA
|
|
Todd Millstein
|
Department of Computer Science and Engineering, University of Washington, Box 352350, Seattle, WA
|
|
| Sponsor |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 15, Downloads (12 Months): 63, Citation Count: 60
|
|
|
ABSTRACT
We present MultiJava, a backward-compatible extension to Java supporting open classes and symmetric multiple dispatch. Open classes allow one to add to the set of methods that an existing class supports without creating distinct subclasses or editing existing code. Unlike the "Visitor" design pattern, open classes do not require advance planning, and open classes preserve the ability to add new subclasses modularly and safely. Multiple dispatch offers several well-known advantages over the single dispatching of conventional object-oriented languages, including a simple solution to some kinds of "binary method" problems. MultiJava's multiple dispatch retains Java's existing class-based encapsulation properties. We adapt previous theoretical work to allow compilation units to be statically typechecked modularly and safely, ruling out any link-time or run-time type errors. We also present a n compilation scheme that operates modularly and incurs performance overhead only where open classes or multiple dispatching are actually used.
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.
 |
Agrawal et al. 91
|
Rakesh Agrawal , Linda G. Demichiel , Bruce G. Lindsay, Static type checking of multi-methods, Conference proceedings on Object-oriented programming systems, languages, and applications, p.113-128, October 06-11, 1991, Phoenix, Arizona, United States
|
| |
Arnold & Gosling 98
|
|
 |
Bourdoncle & Merz 97
|
|
 |
Boyland & Castagna 97
|
John Boyland , Giuseppe Castagna, Parasitic methods: an implementation of multi-methods for Java, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.66-76, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
Bruce et al. 95
|
|
| |
Cardelli 88
|
|
 |
Castagna et al. 92
|
Giuseppe Castagna , Giorgio Ghelli , Giuseppe Longo, A calculus for overloaded functions with subtyping, Proceedings of the 1992 ACM conference on LISP and functional programming, p.182-192, June 22-24, 1992, San Francisco, California, United States
|
 |
Castagna 95
|
|
| |
Castagna 97
|
|
| |
Chambers 92
|
|
| |
Chambers 95
|
Craig Chambers. The Cecil Language: Specification and Rationale: Version 2.0. Department of Computer Science and Engineering, University of Washington, December, 1995. http:// www.cs.washington.edu/research/projects/cecil/www/Papers/ cecil-spec.html.
|
 |
Chambers & Chen 99
|
|
 |
Chambers & Leavens 95
|
|
| |
Chambers 98
|
Craig Chambers. Towards Diesel, a Next-Generation OO Language after Cecil. Invited talk, The Fifth Workshop on Foundations of Object-oriented Languages, San Diego, California, January 1998.
|
| |
Cook 90
|
|
| |
Feinberg et al. 97
|
Neal Feinberg, Sonya E. Keene, Robert O. Mathews, and P. Tucker Withington. The Dylan Programming Book. Addison-Wesley Longman, Reading, Mass., 1997.
|
 |
Findler & Flatt 98
|
|
| |
Gamma et al. 95
|
|
| |
Gosling et al. 00
|
James Gosling , Bill Joy , Guy Steele , Gilad Bracha, Java Language Specification, Second Edition: The Java Series, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2000
|
 |
Ingalls 86
|
|
| |
Kiczales et al. 97
|
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, John Irwin. Aspect-Oriented Programming. In proceedings of the Eleventh European Conference on Object- Oriented Programming, Finland. Springer-Verlag LNCS 1241. June 1997.
|
 |
Leavens & Millstein 98
|
Gary T. Leavens , Todd D. Millstein, Multiple dispatch as dispatch on Tuples, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.374-387, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
Martin 98
|
|
| |
Millstein & Chambers 99
|
|
| |
Millstein & Chambers
|
Todd Millstein and Craig Chambers. Modular Statically Typed Multimethods. To appear in Information and Computation.
|
| |
Mugridge et al. 91
|
|
| |
Nordberg 98
|
|
 |
Odersky & Wadler 97
|
|
| |
Paepcke 93
|
|
| |
Shalit 97
|
|
| |
Steele 90
|
|
| |
Vlissides 99
|
John Vlissides. Visitor into Frameworks. C++ Report, 11(10):40-46. SIGS Publications, November/December 1999.
|
CITED BY 60
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Macneil Shonle , Karl Lieberherr , Ankit Shah, XAspects: an extensible system for domain-specific aspect languages, Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 26-30, 2003, Anaheim, CA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Shay Artzi , Michael D. Ernst, Using predicate fields in a highly flexible industrial control system, Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Curtis Clifton , Todd Millstein , Gary T. Leavens , Craig Chambers, MultiJava: Design rationale, compiler implementation, and applications, ACM Transactions on Programming Languages and Systems (TOPLAS), v.28 n.3, p.517-575, May 2006
|
|
|
|
|
|
|
|
|
|
|
|
Christopher Dutchyn , Paul Lu , Duane Szafron , Steven Bromling , Wade Holst, Multi-dispatch in the Java virtual machine: design and implementation, Proceedings of the 6th conference on USENIX Conference on Object-Oriented Technologies and Systems, p.6-6, January 29-February 02, 2001, San Antonia, Texas
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Henrique Rebêlo , Sérgio Soares , Ricardo Lima , Leopoldo Ferreira , Márcio Cornélio, Implementing Java modeling language contracts with AspectJ, Proceedings of the 2008 ACM symposium on Applied computing, March 16-20, 2008, Fortaleza, Ceara, Brazil
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hridesh Rajan , Michael Haupt , Christoph Bockisch , Robert Dyer, Virtual machines and intermediate languages for emerging modularization mechanisms, Companion to the 23rd ACM SIGPLAN conference on Object oriented programming systems languages and applications, October 19-23, 2008, Nashville, TN, USA
|
|
|
|
|
|
|
|
|
|
|
|
Fabio Simeoni , David Lievens, Matchmaking for covariant hierarchies, Proceedings of the 8th workshop on Aspects, components, and patterns for infrastructure software, March 02-02, 2009, Charlottesville, Virginia, USA
|
|
|
|
|
|
|
|