Dynamic binary translation is a means of running binaries designed for one architecture on another. It is an important tool for running legacy code and high-speed functional simulations. An early dynamic binary translator was the Dynamite system, developed at Manchester University and since evolving into the QuickTransit product of Transitive Technologies and Rosetta developed by Apple. A more recent dynamic binary translation tool is PearColator, which uses the optimizing compiler of a JVM to provide high-performance.
In this presentation I will give a review of binary translation systems, describe the normal binary translation optimizations and why they aren't always what they seem, describe some of the internals of the Dynamite and PearColator infrastructures, and give some tales of the hardships in being a binary translator writer.
Ian Rogers' BSc, MPhil and PhD from the University of Manchester were involved in the creation of the Dynamite binary translator. Ian worked as a design authority for Transitive Technologies working on performance, operating system integration and testing of QuickTransit and Rosetta. He is currently a Research Fellow at the University of Manchester working on parallelizing dynamic compilers, speculative threading and transactional memories.