Dynamic compilation techniques have found a renaissance in recent years due
to their use in high-performance implementations of the Java™ language.
Techniques origi-nally developed for use in virtual machines for such
object-oriented languages as Smalltalk are now commonly used in Java
virtual machines (JVM™) and Java just-in-time compilers. These techniques
have also been applied to binary translation in recent years, most commonly
appearing in binary optimizers for a given platform that improve the
performance of binary programs while they execute.
The Walkabout project investigates and develops dynamic binary translation
techniques that are based on properties of retargetability, ease of
experimentation, separation of machine-dependent from machine-independent
concerns, and good debugging support. Walkabout is a framework for
experimenting with dynamic binary translation ideas, as well as techniques
in related areas such as interpreters, instrumentation tools, and
In this report, we present the design of the Walkabout framework and its
initial implementation. Tools generated from this initial framework
include disassemblers, machine code interpreters (emulators), and binary
rewriting tools for the SPARC® and x86 architectures.