Malloy, MichaelThis document is currently unavailable pending completion of a larger research project.In traditional software development, the developer would use a compiler to translate a high-level language program (Java, C++, etc.) into a binary executable program. In recent years, new research has introduced a new concept called the Binary Rewriter. The Binary Rewriter takes a binary executable program as input, performs some form of optimization, and then outputs an improved binary executable program. The improved binary executable program performs the same function as the original, but some aspect of the new executable is able to perform better than the original. The Binary Rewriter can optimize programs to improve security, to improve runtime and real-time bounds, to reduce energy use, or to improve reliability. The Binary Rewriter has three main components: the reader, the optimizer, and the writer. The reader reads in a binary executable program and translates it into an ISA-independent Intermediate Format (IF). The optimizer then takes the Intermediate Format code and enhances it for increased security, reliability, etc. Once the optimization stage is complete, the writer uses the improved Intermediate Format code to produce an improved binary executable file. During my ten week internship with The Institute for Systems Research, it was my duty to begin the implementation of the third component, the writer. This manual will provide you with a detailed description of the writer section of the Binary Rewriter. NOTE: This document is currently unavailable pending completion of a larger research projectenBinary Rewriterbinary executable programsoptimizationruntimereal-time boundsBinary Rewriter Writer Software ManualTechnical Report