Binary recompiler

Source: Wikipedia, the free encyclopedia.

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

XLT86 in 1981.[4][9][10][11]

See also

References

  1. ^ 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.
  2. 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.
  3. S2CID 10219496. Archived (PDF) from the original on 2017-06-29. Retrieved 2006-11-20. ([1]
    )
  4. ^
    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.
  5. from the original on 2016-11-18. Retrieved 2016-11-18.
  6. from the original on 2019-12-21. Retrieved 2019-12-21 – via www.digitalresearch.biz.
  7. DRI
    , he introduced a binary recompiler. […]
  8. XLT 86 was another, where he got it running the first time, and he had to have somebody see it. So it didn't matter what time it was, he'd call me, I'd have to come over and see it running. […] [2][3]
    (33 pages)
  9. program flow and resource usage. Forth, the block structure and register allocation
    data is gathered into a listing for the user. Fifth, the flow information and source program are used to produce the 8086 source program. […]
  10. XLT-86
    was 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. […]
  11. 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