Un compilador es un programa que traduce un programa escrito en un lenguaje de programación fuente a otro lenguaje como lenguaje de máquina o código intermedio, realizando tareas de análisis del programa fuente e informando de errores. El proceso de compilación involucra fases de análisis léxico y sintáctico para verificar la corrección del programa fuente, y fases de síntesis para generar el código equivalente en el lenguaje objetivo.