Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Compiladores 1
Sección A
Procesador de Lenguaje
• Los procesadores de lenguaje son
todos los programas que a través de
una entrada escrita en un lenguaje de
programación pueden manipular
herramientas de software y hardware
de un computador.
• Es más sencillo de implementar.
Interprète • No es necesario tener en
memoria todo el código fuente.
Análisis Léxico
Análisis Sintáctico
Análisis Semántico
Tabla de Manejador
Símbolos de Errores
Código Intermedio
Optimizador de Código
Generador de Código
Programa Objeto
Análisis Léxico
Análisis Léxico
Análisis Sintáctico
Generación de Código
Análisis Sintáctico
Intermedio
Análisis Semántico
• El generador de código intermedio
Código Intermedio transforma un árbol semántico en
Optimizador de Código
una representación en un lenguaje
intermedio cercano al código objeto.
Generador de Código
Código 3 direcciones:
• Es una secuencia de proposiciones
de la forma general:
• x := y op z
op representa cualquier operador
Análisis Léxico
Análisis Sintáctico
Optimizador de Código
Análisis Semántico
• La optimización de código es la
verificación que se hace del código
Código Intermedio
ya generado para mejora la
Optimizador de Código velocidad al momento de la
ejecución.
Generador de Código
• Existen algunas reglas para
optimizar:
• Elimina la reescritura de código
• Eliminación de código inalcanzable
• Optimización de temporales
Análisis Léxico
Código Intermedio
• Traduce el código intermedio a
código ensamblador.
Optimizador de Código
• Las posiciones de memoria se
Generador de Código seleccionan para cada una de las
variables usadas en el programa.
Tabla de Símbolos
• Almacena la estructura de datos:
• Variables, Constantes, Etiquetas, Tipos,
Valores, Asignación de valores.
• Operaciones:
• Insertar símbolo.
• Consultar símbolo.
• Borrar símbolo.
Detección de Errores:
• El manejador de errores permite establecer si
el programa fuente posee algún error ya sea
de tipo:
• léxico (caracteres no definidos),
• sintáctico (estructura inadecuada)
• semántico (contexto no apropiado)