Este documento describe diferentes tipos de compiladores, incluyendo compiladores de una y múltiples pasadas, metacompiladores, descompiladores, compiladores intérpretes y compiladores cruzados. Un compilador es un programa que traduce un programa escrito en un lenguaje de programación a un lenguaje de máquina u otro código. Los compiladores varían en el número de pasadas que realizan sobre el código fuente y en si generan código nativo o intermedios.