Os principais tipos de compiladores de computador são compiladores de passagem única, compiladores de passagem múltipla, compiladores cruzados e compiladores de otimização. Um compilador pega uma linguagem de computador, chamada de código-fonte, e a converte na linguagem de destino . Ele permite que um computador seja capaz de ler diferentes códigos-fonte. Um compilador torna o software mais rápido e usa menos memória.
Compiladores são considerados tipos específicos de tradutores de computador. Eles traduzem os códigos-fonte de uma linguagem de alto nível para uma linguagem de nível inferior, como códigos de máquina e código assembly.
Um compilador cruzado é aquele que pode ser executado em um sistema operacional de computador diferente do sistema operacional que o programa normalmente usa. Ele decompõe os códigos binários, os entende e permite que os programadores de computador tenham acesso aos códigos.
Um compilador é um programa de computador escrito em linguagem de implementação. O primeiro compilador capaz de compilar seu próprio código-fonte foi desenvolvido em 1962. Na década de 1990, compiladores livres e ferramentas de desenvolvimento de compiladores foram desenvolvidos em massa. Os compiladores modernos são de alta qualidade e são escritos em muitos tipos de linguagens. Um programa compilador que traduz um programa de nível inferior em um de nível superior é conhecido como descompilador.