Programa que recibe como
entrada un código escrito
en un cierto lenguaje
Lenguaje de
alto nivel
Produce como salida un
código en otro lenguaje
Lenguaje de
bajo nivel
Ejemplos:
Ensamblador
El lenguaje fuente es lenguaje ensamblador
y posee una estructura sencilla.
Compilador
Convierte un programa hecho en lenguaje de
programación de alto nivel a un lenguaje de
máquina.
Tipos de compiladores:
Una pasada:
Examina el código fuente una vez,
generando el código o programa objeto.
Optimación:
Lee un código fuente, lo analiza y descubre
errores potenciales sin ejecutar el programa.
Pasadas múltiples:
Requieren pasos intermedios para producir un código en otro lenguaje, y una pasada
final para producir y optimizar el código producido durante los pasos anteriores.
Auto-compilador:
Compilador que está escrito en el mismo lenguaje que va a compilar.
Sirve para hacer ampliaciones al lenguaje, mejorar el código generado, etc.
Meta-compilador:
Programa que recibe como entrada las especificaciones del lenguaje para el que se
desea obtener un compilador y genera como salida el compilador para ese lenguaje.