1. A program that translates another program written in a high-level language into machine language so that it can be executed.
See also interpreter, compile-time vs run-time