A programming language compiler that enhances the performance and/or reduces the size of the resulting machine program. Optimizing compilers require multiple passes in order to analyze the entire program and maximize the reuse of code throughout. See
compiler.