<?xml version="1.0" encoding="UTF-8"?>
<XML><RECORDS>
<RECORD>
	<REFERENCE_TYPE>0</REFERENCE_TYPE>
	<AUTHORS>
		<AUTHOR>Christian Grothoff</AUTHOR>
	</AUTHORS>
	<YEAR>2008</YEAR>
	<TITLE>The Runabout</TITLE>
	<SECONDARY_TITLE>Software: Practice and Experience</SECONDARY_TITLE>
	<ABSTRACT>This paper presents a variation of the visitor pattern which allows
programmers to write visitor-like code in a concise way.  The Runabout
is a library extension that adds a limited form of multi-dispatch to
Java.  While the Runabout is not as expressive as a general multiple
dispatching facility, the Runabout can be significantly faster than
existing implementations of multiple dispatch for Java, such as
MultiJava.  Unlike MultiJava, the Runabout does not require changes to
the syntax and the compiler.

This paper illustrates how to use the Runabout, details its
implementation, and provides benchmarks comparing its performance with
other approaches.  Furthermore, the effect of an automatic static
program transformation tool that translates bytecode using the
Runabout to equivalent bytecode is evaluated.  The tool uses double
dispatch and runtime type checks to achieve the same semantics that
the Runabout has.  The performance comparisons on large benchmarks
that make extensive use multiple dispatch show that using the Runabout
does not result in a significant loss of performance for realistic
applications and that, depending on the application and platform,
small performance gains are also possible.
</ABSTRACT>
	<URL>http://grothoff.org/christian/spe.pdf</URL>
</RECORD>
</RECORDS></XML>