Un programa escrito en un lenguaje de alto nivel se denomina programa fuente, y un programa expresado en código binario se denomina programa destino. El programa fuente se convierte en un programa de destino que la máquina puede reconocer a través de un compilador, y el compilador puede convertir lenguajes de alto nivel en programas de destino.
Compilador (Compilador) se refiere a un programa de traducción que traduce un programa fuente escrito en un lenguaje de programación de alto nivel a un programa de destino equivalente en formato de lenguaje de máquina.