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.

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 
  (36 pages)

Compiler construction
Computer libraries