Binary translation

static recompilationdynamic binary translatorDynamic Binary Translationtranslated into the processor's instruction setautomatic translation of binary object codecode emulationcode morphingcode translation layerdynamic instruction translationdynamic translation
In computing, binary translation is a form of binary recompilation where sequences of instructions are translated from a source instruction set to the target instruction set.wikipedia
115 Related Articles

Rosetta (software)

RosettaRosetta emulation software
Rosetta is a discontinued dynamic binary translator for Mac OS X that allowed many PowerPC applications to run on certain Intel-based Macintosh computers without modification.

Pandora (console)

PandoraOpen PandoraOpenPandora
The Pandora handheld community was capable of developing the required tools on their own and achieving such translations successfully several times.
The Pandora community is also notable for the development of tools required to achieve several successful static recompilations of complex binary software to the Pandora platform.

StarCraft (video game)

StarCraftStarCraft 64first title
In 2014, an ARM architecture version of the 1998 video game StarCraft was generated by static recompilation and additional reverse engineering of the original x86 version.
In 2014, an unofficial version for the Pandora handheld and the ARM architecture became available by static recompilation and reverse engineering of the original x86 version.

Transmeta

Transmeta CorporationTransmeta lawsuit
Code Morphing Software consisted of an interpreter, a runtime system and a dynamic binary translator.

MacOS

Mac OS XOS XMac
Intel-based Macs would run a new recompiled version of OS X along with Rosetta, a binary translation layer which enables software compiled for PowerPC Mac OS X to run on Intel Mac OS X machines.

Dynamic recompilation

dynamic recompilerdynamically recompile
More advanced dynamic translators employ dynamic recompilation where the translated code is instrumented to find out what portions are executed a large number of times, and these portions are optimized aggressively.

Wabi (software)

WabiWindows Application Binary Interface
In order to run an x86 Windows environment on SPARC systems, a code translation layer was also provided, which dynamically converts x86 instructions on first use into SPARC instructions.

FX!32

It analyzed the way programs worked and, after the program ran, used binary translation to produce dynamic-link library (DLL) files of native Alpha code that the application could execute the next time it ran.

Binary recompiler

binary rewritingbinary recompilationrecompiler
In computing, binary translation is a form of binary recompilation where sequences of instructions are translated from a source instruction set to the target instruction set.

Just-in-time compilation

JITjust-in-time compilerjust-in-time
This technique is reminiscent of a JIT compiler, and in fact such compilers (e.g. Sun's HotSpot technology) can be viewed as dynamic translators from a virtual instruction set (the bytecode) to a real one.

Shadow memory

shadowed
Memcheck, like all Valgrind tools, uses binary translation and instrumentation to run code manipulating the shadow memory corresponding to program memory use.

Computing

computer technologycomputing technologyapplied computing
In computing, binary translation is a form of binary recompilation where sequences of instructions are translated from a source instruction set to the target instruction set.

Instruction set architecture

instruction setinstructionsinstruction
In computing, binary translation is a form of binary recompilation where sequences of instructions are translated from a source instruction set to the target instruction set.

Instruction set simulator

Instruction set simulationusage of particular instructionsinstruction accurate
In some cases such as instruction set simulation, the target instruction set may be the same as the source instruction set, providing testing and debugging features such as instruction trace, conditional breakpoints and hot spot detection.

Hot spot (computer programming)

hot spotHotSpothot code
In some cases such as instruction set simulation, the target instruction set may be the same as the source instruction set, providing testing and debugging features such as instruction trace, conditional breakpoints and hot spot detection.

Central processing unit

CPUprocessorprocessors
Translation can be done in hardware (for example, by circuits in a CPU) or in software (e.g. run-time engines, static recompiler, emulators).

Executable

executable fileexecutable codebinaries
A translator using static binary translation aims to convert all of the code of an executable file into code that runs on the target architecture without having to run the code first, as is done in dynamic binary translation.

Indirect branch

indirect jumpaddressed indirectlyindirect
For example, some parts of the executable may be reachable only through indirect branches, whose value is known only at run-time.

Superoptimization

Superoptimizer
One such static binary translator uses universal superoptimizer peephole technology (developed by Sorav Bansal, and Alex Aiken from Stanford University) to perform efficient translation between possibly many source and target pairs, with considerably low development costs and high performance of the target binary.

Peephole optimization

Peephole optimizerpeepholepeephole optimizations
One such static binary translator uses universal superoptimizer peephole technology (developed by Sorav Bansal, and Alex Aiken from Stanford University) to perform efficient translation between possibly many source and target pairs, with considerably low development costs and high performance of the target binary.

Stanford University

StanfordLeland Stanford Junior UniversityUniversity of Stanford
One such static binary translator uses universal superoptimizer peephole technology (developed by Sorav Bansal, and Alex Aiken from Stanford University) to perform efficient translation between possibly many source and target pairs, with considerably low development costs and high performance of the target binary.

Honeywell

Honeywell InternationalHoneywell CorporationHoneywell, Inc.
Honeywell provided a program called the Liberator for their Honeywell 200 series of computers; it could translate programs for the IBM 1400 series of computers into programs for the Honeywell 200 series.

Honeywell 200

2200H200Honeywell H200
Honeywell provided a program called the Liberator for their Honeywell 200 series of computers; it could translate programs for the IBM 1400 series of computers into programs for the Honeywell 200 series.

IBM 1400 series

1400IBM 14001400 series
Honeywell provided a program called the Liberator for their Honeywell 200 series of computers; it could translate programs for the IBM 1400 series of computers into programs for the Honeywell 200 series.