A program that translates all the source code of a program written in a high-level language into object code prior to execution of the program.