Dynamic Recompilation Resources

Collected by Michael König, adjusted by David Sharp and Michael König

First of all let me note that recompilation isn't the right term, although it is often used. Compilation is connected with high level languages, which we don't have in this case. A more precise term would be binary code translation.

Introduction

Applications

It's always useful to see how others conquered the problems that arouse with code translation. The main parts of the following product whitepapers only provide general information, but if you read between the lines you'll be able to find some useful hints.
Those who want to have even more in-depth information, or want to design their own binary translator, should take a look at the free source code of the emulators collected below.

Documentation

Source Code

Dynamic Code Generation

The last step in binary translation is the generation of machine code. This part is also used for "serious" applications and Dawson Engler did vast research on that topic. His VCODE shows how retargetable and fast dynamic code generation can be achieved.
But as the VCODE definition isn't totally suitable for emulation, a special abstract machine code might have to be defined. For that purpose a comparision between various RISC architectures can be very helpful, which is provided by the Web Extension for Computer Organization & Design by Patterson and Hennessy.
The New Jersey Machine-Code Toolkit helps to write disassemblers and code generators and might therefore be interesting for code translation as well.

Other Collections

If you need further information you can try to search via the following other collections.

Mailing List


The Acorn Emulation Page - David Sharp
© Copyright David Sharp 1997,1998,1999,2000