Definition
A program that translates programs from one programming language (source program) into another programming language (object program). Typically the compiler translates from a higher, user understandable language to a lower, machine interpretable language.