MultiJava: Modular Symmetric Multiple Dispatch and Extensible Classes for Java

Thumbnail Image
Date
2000-04-01
Authors
Clifton, Curtis
Leavens, Gary
Chambers, Craig
Millstein, Todd
Major Professor
Advisor
Committee Member
Journal Title
Journal ISSN
Volume Title
Publisher
Authors
Research Projects
Organizational Units
Organizational Unit
Journal Issue
Is Version Of
Versions
Series
Department
Computer Science
Abstract

Multiple dispatch offers several well-known advantages over the single dispatching of conventional object-oriented languages, including a simple solution to the "binary method" problem and cleaner implementations of the "strategy" and similar design patterns. Extensible classes allow one to extend the set of methods that an existing class supports without editing that class or client code. This provides, among other idioms, a simple implementation of the "visitor" design pattern. We present MultiJava, a backward-compatible extension to Java supporting symmetric multiple dispatch and extensible classes. We adapt previous theoretical work to allow MultiJava classes to be statically typechecked modularly and safely, ruling out any link-time or run-time type errors. We also present a novel compilation scheme that operates modularly and incurs performance overhead only where multiple dispatching or extensible classes are actually used.

Comments

Copyright © Curtis Clifton, Gary T. Leavens, Craig Chambers, and Todd Millstein, 2000

Description
Keywords
Citation
DOI
Source
Copyright
Collections