Um compilador ou tradutor de programa é um programa que transforma o código escrito em um idioma em outro idioma. O código de entrada é chamado de código-fonte, enquanto o código traduzido é código de máquina.
Um compilador traduz linguagens de programação de alto nível (por exemplo, Java, C++) em uma linguagem de baixo nível (como Montagem) para criar um programa executável.