Binary recompiler
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.[1]
The foundation to the concepts of binary recompilation were laid out by
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 H200)
References
- ^ Mudge, Trevor; Reinhardt, Steve; Tyson, Gary. "Binary Recompilation and Combined Compiler/Architecture Enhancements Studies". umich.edu. University of Michigan (UM). Archived from the original on 2012-07-23. Retrieved 2012-07-23.
- Kildall, Gary Arlen (May 1972). Global expression optimization during compilation (Ph.D. dissertation). Seattle, Washington, USA: University of Washington, Computer Science Group. Thesis No. 20506, Technical Report No. 72-06-02.
- )
- ^ nonessential code. According to Digital Research programmer Davis, the algorithm Kildall uses allows the translator to consider the context as it translates the program. Until now, one of the major problems with any translator program has been the inability of the software to do much more than transliteration. If Digital Research's new translator actually advances the technology to the point where context can be considered, then more software translators may proliferate in the microcomputer marketplace.
- MicroDesign Resources Inc. (MDR). Archivedfrom the original on 2016-11-18. Retrieved 2016-11-18.
- Software Publishers Association (SPA). 1995-03-13. Archivedfrom the original on 2019-12-21. Retrieved 2019-12-21 – via www.digitalresearch.biz.
- DRI, he introduced a binary recompiler. […]
- (33 pages)
- program flow and resource usage. Forth, the block structure and register allocationdata is gathered into a listing for the user. Fifth, the flow information and source program are used to produce the 8086 source program. […]
- XLT-86was a product I was working on at that time, and it took me nine months to do it. That would have been a three-month project if I had been able to concentrate on it. […]
- XLT-86. It's been out six months or so. PC: By "better" code do you mean smaller? Kildall: Twenty percent smaller than if you just took every op code and did a straight translation, saving the registers to preserve semantics. PC: How does the size of the translated program compare to the 8080 version? Kildall: If you take an 8080 program, move it over to 86 land and do an XLT-86 translation, you'll find that it is roughly 10 to 20 percent larger. With 16-bit machines it's more difficult to address everything; you get op codes that are a little bit bigger on the average. An interesting phenomenon is that one of the reasons you don't get a tremendous speed increase in the 16-bit world is because you're running more op codes over the data bus. […]
Further reading
- Wenzl, Matthias; Merzdovnik, Georg; Ullrich, Johanna; Weippl, Edgar R. (June 2019) [February 2019, November 2018, May 2018]. "From hack to elaborate technique - A survey on binary rewriting" (PDF). (PDF) from the original on 2021-01-15. Retrieved 2021-11-28. (36 pages)