Es un traductor que trasforma textos
fuentes de lenguaje de alto nivel a
lenguajes de bajo nivel.
Lenguajes de
alto nivel
Instrucciones, palabras o expresiones
sintácticas muy similares al inglés
Lenguajes de
bajo nivel
Llamado lenguaje de maquina es un sistema
binario que se basa en la transmisión o
no-transmisión de energía eléctrica
¿Como funciona?
Es una secuencia de varias fases. Cada fase tiene su
propia representación del programa de origen, y
alimenta su resultado a la siguiente fase del compilador.
Diagrama de fases
Fases del compilador
Fase de análisis
Análisis léxico
Análisis sintáctico
Análisis semántico
Criterio en el cual se verifica que el resultado de
lo que ha sido programado tiene una correlación
con la orden que ha querido ser ejecutada
los caracteres o componentes léxicos se
agrupan jerárquicamente en frases
gramaticales que el compilador utiliza para
sintetizar la salida. Se comprueba si lo
obtenido de la fase anterior es
sintácticamente correcto (obedece a la
gramática del lenguaje).
Aquí se lee el programa fuente de izquierda
a derecha y se agrupa en componentes
léxicos (tokens), que son secuencias de
caracteres que tienen un significado.
Fase de síntesis
Código intermedio
Optimización:
Generación de código
Secuencia de instrucciones de código
máquina realiza la tarea como el
código intermedio.
El código anteriormente creado en forma previa
al resultado final es analizado y mejorado en
pos de mayor rendimiento y menos errores
Se genera un Código Objeto preliminar en
base al Lenguaje de Alto Nivel
Manejador de errores
Es el encargado de buscar errores durante las
diferentes etapas del compilador y las almacenara.
Tabla de símbolos
Es una estructura de datos que se
mantendrá en todas las fases del
compilador Esta almacenará todos
los identificadores.