Introdução
A construção de compiladores é um estudo sobre técnicas de tradução e aperfeiçoamento de programas, quase todo o software utilizado é traduzido de alguma forma por um compilador. Os compiladores são projetados de maneira cuidadosa e envolvem processos grandes e complexos que incluem milhares de linhas de código organizados em componentes que interagem de maneira a gerar uma compilação eficiente e rápida.
Os avanços na criação e melhoria das linguagens de programação impôs vários desafios aos projetistas de compiladores que precisam criar algoritmos para traduzir tudo isso em linguagem de máquina. Outro grande desafio é a evolução na arquitetura dos computadores, o que exige um constante aperfeiçoamento do compilador.
A tradução para a linguagem-objeto deve tirar o máximo proveito sobre o hardware e o software. É importante destacar que o desempenho de um sistema de computação é extremamente dependente da tecnologia de compilação utilizada.