Binary Translation Research
Program-Transformation.Org: The Program Transformation Wiki
While concentrating on research, this is also a miscellaneous page.
- The novel Low Level Virtual Machine (LLVM) http://llvm.cs.uiuc.edu/ is a product of the Lifelong Code Optimization Project, led by Vikram Adve in the Department of Computer Science at the University of Illinois, Urbana-Champaign. LLVM is (1) a compilation strategy, (2) a virtual instruction set and (3) a compiler infrastructure.
- Reuben Thomas has written an open source Virtual Machine called Mite which is designed for easy JIT translation.
- Dixie from Universitat Politecnic de Catalynya uses a machine independent Virtual Machine.
- SimOS, the complete machine simulator. The Embra subsystem uses dynamic binary translation to perform simulations. Slowdowns of only 3-9 are claimed.
- The Diamonds Project. This project is part of the Open Microprocessor Initiative in the Fourth EU Framework Programme for Research and Technological Development. The goal of Diamonds was to design a new 8/16-bit RISC microcontroller providing CISC software compatibility.
- Etch Instrumentation and Optimization of Windows 32-bit x86 Executables.
- TIBBIT Timing Insensitive Binary to Binary Translation.
- Walkabout. This is a dynamic version of UQBT, i.e. it is a dynamic Binary Translator. The dynamic parts were developed at Sun Microsystems. The source code for Walkabout has been released under a BSD-like license. In fact, UQBT is released as part of Walkabout now.
- Lucent Technologies' FlashPort multi-platform translation services.
- Executor Macintosh emulator for DOS, WIndows, OS/2, Linus and NextStep.
- wxWindows is a free C++ multiplatform GUI toolkit.
- The Wine Project is a cleanroom implementation of the Win32 and Windows 3.1 APIs, using X and Linux for the core operating system functionality. There is no translation here; Wine only works on an X86 machine running Linux. In a sense it's complementary to binary translation; binary translation emulates the processor, but something like Wine emulates the operating system.
- QEMU is a FAST! processor emulator using dynamic translation to achieve good emulation speed.
- PearColator is a dynamic binary translator; providing "optimizing compiler fast PowerPC emulation, using the Jikes RVM as a dynamic binary translator (DBT)". Remarkably, it is written in Java, and runs under the JVM (not natively compiled). Still under development but already runs a number of applications.
- PearPC is an architecture-independent PowerPC platform emulator capable of running most PowerPC operating systems. Runs on little endian (e.g. Pentium) Linux and Win32 platforms.
CategoryBinaryTranslation