HOME





Recompilation
A binary recompiler is a compiler that takes executable binary files as input, analyzes their structure, applies transformations and optimizations, and outputs new optimized executable binaries. The foundation to the concepts of binary recompilation were laid out by Gary Kildall with the development of the optimizing assembly code translator XLT86 in 1981. See also * Binary optimizer (binary-to-binary) * Binary translator (binary-to-binary) * Decompiler (binary-to-source) * Disassembler (binary-to-source) * Dynamic recompiler (binary-to-binary) * Transcompiler (source-to-source) * Honeywell Liberator (running IBM 1401 programs on Honeywell H200) References Further reading * {{cite journal , title=From hack to elaborate technique - A survey on binary rewriting , author-first1=Matthias , author-last1=Wenzl , author-first2=Georg , author-last2=Merzdovnik , author-first3=Johanna , author-last3=Ullrich , author-first4=Edgar R. , author-last4=Weippl , location=Vienna, Austria , ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Binary Translator
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. 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. The two main types are static and dynamic binary translation. Translation can be done in hardware (for example, by circuits in a CPU) or in software (e.g. run-time engines, static recompiler, emulators). Motivation Binary translation is motivated by a lack of a binary for a target platform, the lack of source code to compile for the target platform, or otherwise difficulty in compiling the source for the target platform. Statically-recompiled binaries run potentially faster than their respective emulated binaries, as the emulation overhead is removed. This is ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Dynamic Recompiler
In computer science, dynamic recompilation is a feature of some emulators and virtual machines, where the system may recompile some part of a program during execution. By compiling during execution, the system can tailor the generated code to reflect the program's run-time environment, and potentially produce more efficient code by exploiting information that is not available to a traditional static compiler. Uses Most dynamic recompilers are used to convert machine code between architectures at runtime. This is a task often needed in the emulation of legacy gaming platforms. In other cases, a system may employ dynamic recompilation as part of an adaptive optimization strategy to execute a portable program representation such as Java or .NET Common Language Runtime bytecodes. Full-speed debuggers also utilize dynamic recompilation to reduce the space overhead incurred in most deoptimization techniques, and other features such as dynamic thread migration. Tasks The main tasks ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


XLT-86
A source-to-source translator, source-to-source compiler (S2S compiler), transcompiler, or transpiler is a type of translator that takes the source code of a program written in a programming language as its input and produces an equivalent source code in the same or a different programming language. A source-to-source translator converts between programming languages that operate at approximately the same level of abstraction, while a traditional compiler translates from a higher level programming language to a lower level programming language. For example, a source-to-source translator may perform a translation of a program from Python to JavaScript, while a traditional compiler translates from a language like C to assembler or Java to bytecode. An automatic parallelizing compiler will frequently take in a high level language program as an input and then transform the code and annotate it with parallel code annotations (e.g., OpenMP) or language constructs (e.g. Fortran's ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Honeywell H200
The Honeywell 200 was a character-oriented two-address commercial computer introduced by Honeywell in December 1963, the basis of later models in Honeywell 200 Series, including 1200, 1250, 2200, 3200, 4200 and others, and the character processor of the Honeywell 8200 (1968). Introduced to compete with IBM's 1401, the H200 was two or three times faster and, with software support, most of the time could execute IBM 1401 programs without need for their recompilation or reassembly. The Liberator marketing campaign exploited this compatibility, and was credited in later Honeywell publicity statements with stalling the sales of IBM 1401 machines. Honeywell claimed an initial rush of hundreds of orders for the H200 that itself stalled when IBM countered with a marketing emphasis on their System 360 product range that was then under development. Architecture As designed by Director of Engineering William L. Gordon, the H200 memory consisted of individually addressed characters, eac ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Binary Optimizer
An object code optimizer, sometimes also known as a post pass optimizer or, for small sections of code, peephole optimizer, takes the output from a source language compile step - the object code or binary file - and tries to replace identifiable sections of the code with replacement code that is more algorithmic efficiency, algorithmically efficient (usually improved speed). Examples * "IBM Automatic Binary Optimizer for z/OS" (ABO) was introduced in 2015 as a cutting-edge technology designed to optimize the performance of COBOL applications on IBM Z mainframes without the need for recompiling source. It uses advanced optimization technology shipped in the latest Enterprise COBOL. ABO optimizes compiled binaries without affecting program logic. As a result, the application runs faster but behavior remains unchanged so testing effort could be reduced. Clients normally don't recompile 100 percent of their code when they upgrade to new compiler or IBM Z hardware levels, so code tha ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Disassembler
A disassembler is a computer program that translates machine language into assembly language—the inverse operation to that of an assembler. A disassembler differs from a decompiler, which targets a high-level language rather than an assembly language. Disassembly, the output of a disassembler, is often formatted for human-readability rather than suitability for input to an assembler, making it principally a reverse-engineering tool. Assembly language source code generally permits the use of constants and programmer comments. These are usually removed from the assembled machine code by the assembler. If so, a disassembler operating on the machine code would produce disassembly lacking these constants and comments; the disassembled output becomes more difficult for a human to interpret than the original annotated source code. Some disassemblers provide a built-in code commenting feature where the generated output gets enriched with comments regarding called API functions or ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Honeywell Liberator
The Honeywell 200 was a character-oriented two-address commercial computer introduced by Honeywell in December 1963, the basis of later models in Honeywell 200 Series, including 1200, 1250, 2200, 3200, 4200 and others, and the character processor of the Honeywell 8200 (1968). Introduced to compete with IBM's 1401, the H200 was two or three times faster and, with software support, most of the time could execute IBM 1401 programs without need for their recompilation or reassembly. The Liberator marketing campaign exploited this compatibility, and was credited in later Honeywell publicity statements with stalling the sales of IBM 1401 machines. Honeywell claimed an initial rush of hundreds of orders for the H200 that itself stalled when IBM countered with a marketing emphasis on their System 360 product range that was then under development. Architecture As designed by Director of Engineering William L. Gordon, the H200 memory consisted of individually addressed characters, each c ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]