compilador
Um compilador é um programa de computador que transforma um código-fonte escrito em uma linguagem de programação em outra linguagem de computador. Para que ele seja explorado pela máquina, o compilador traduz o código-fonte, escrito em um idioma de alto nível de abstração, facilmente compreendido pelo humano, para um idioma de nível inferior, um idioma de montagem ou linguagem de máquina. No caso da linguagem semi-compilada, o código-fonte é traduzido para um idioma intermediário, em forma binária, antes de ser interpretado ou compilado. Por outro lado, um programa que traduz um idioma de baixo nível para uma linguagem de nível superior é um descompilador. Um compilador realiza as seguintes operações: análise lexical, pré-processamento, análise sintática, análise semântica, geração de código e otimização de código. Quando o programa compilado pode ser executado em um computador cujo processador ou sistema operacional é diferente do compilador, ele é chamado de compilação cruzada. A compilação é freqüentemente seguida por uma etapa de edição de link, para gerar um arquivo executável.