Un compilador es un programa que traduce código fuente escrito en un lenguaje de programación de alto nivel a otro lenguaje, generalmente lenguaje máquina. El proceso de compilación involucra análisis del código fuente para verificar su corrección y síntesis para generar el código objeto. Un compilador típicamente divide el proceso en fases como análisis léxico, sintáctico y semántico para el análisis y generación de código y optimización para la síntesis.