MultiJava: Modular Symmetric Multiple Dispatch and Extensible Classes for Java

dc.contributor.author Clifton, Curtis
dc.contributor.author Leavens, Gary
dc.contributor.author Chambers, Craig
dc.contributor.author Millstein, Todd
dc.contributor.department Computer Science
dc.date 2018-02-13T22:21:00.000
dc.date.accessioned 2020-06-30T01:57:19Z
dc.date.available 2020-06-30T01:57:19Z
dc.date.issued 2000-04-01
dc.description.abstract <p>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.</p>
dc.description.comments <p>Copyright © Curtis Clifton, Gary T. Leavens, Craig Chambers, and Todd Millstein, 2000</p>
dc.identifier archive/lib.dr.iastate.edu/cs_techreports/56/
dc.identifier.articleid 1050
dc.identifier.contextkey 5282208
dc.identifier.s3bucket isulib-bepress-aws-west
dc.identifier.submissionpath cs_techreports/56
dc.identifier.uri https://dr.lib.iastate.edu/handle/20.500.12876/20242
dc.source.bitstream archive/lib.dr.iastate.edu/cs_techreports/56/TR00_06.pdf|||Sat Jan 15 00:56:33 UTC 2022
dc.subject.disciplines Programming Languages and Compilers
dc.subject.keywords Multimethods
dc.subject.keywords generic functions
dc.subject.keywords object-oriented programming languages
dc.subject.keywords single dispatch
dc.subject.keywords multiple dispatch
dc.subject.keywords encapsulation
dc.subject.keywords modularity
dc.subject.keywords static typechecking
dc.subject.keywords subtyping
dc.subject.keywords inheritance
dc.subject.keywords open objects
dc.subject.keywords extensible classes
dc.subject.keywords external methods
dc.subject.keywords Java language
dc.subject.keywords MultiJava language
dc.subject.keywords separate compilation
dc.title MultiJava: Modular Symmetric Multiple Dispatch and Extensible Classes for Java
dc.type article
dc.type.genre article
dspace.entity.type Publication
relation.isOrgUnitOfPublication f7be4eb9-d1d0-4081-859b-b15cee251456
File
Original bundle
Now showing 1 - 1 of 1
Name:
TR00_06.pdf
Size:
88.15 KB
Format:
Adobe Portable Document Format
Description:
Collections