Download - Pasadas multiples
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
Compilador se define por como este haya sido constituido o de que
función deba realizar pero las tareas básicas son las mismas, entre los mas importantes se puede mencionar de una pasada , múltiples pasadas, y de
carga y ejecución. Un compilador realiza una contante interacción entre dos elementos muy importantes que
son: la tabla de símbolos y el manejador de errores, utilizados
constantemente en las etapas de este
ANALIZADOR LEXICO
es la primera fase de un compilador consistente en un programa que
recibe como entrada el código fuente de otro programa (secuencia de caracteres) y produce una salida
compuesta de tokens (componentes léxicos) o símbolos. Estos tokens
sirven para una posterior etapa del proceso de traducción, siendo la
entrada para el analizador sintáctico ( en ingles parser)
ANALIZADOR SINTACTICO
el análisis sintáctico convierte el texto de entrada
en otras estructuras(comúnmente
arboles) que son mas útiles para el posterior análisis y
capturan la jerarquía implícita de la entrada
ANALIZADOR SEMANTICO
revisa el programa fuente para tratar de encontrar
errores semánticos y reúne la información sobre los tipos
para la fase posterior de generación de código
GENERADOR DE CODIGO INTERMEDIO
se puede considerar esta representación intermedia como un programa para una maquina abstracta, esta representación
intermedia debe tener dos propiedades importantes; debe ser fácil de producir y fácil de traducir
al programa objeto
OPTIMADOR DE CODIGO
la fase de optimización de código consiste en mejorar
el código intermedio, de modo que resulte un código
maquina mas rápido de ejecutar
GENERADOR DE CODIGO
es una de las faces mediante el cual un compilador convierte un programa sintácticamente
correcto en una serie de instrucciones a ser
interpretadas por una maquina
•¡¡Los programas no siempre son correctos!!•El compilador tiene que:–Reportar clara y exactamente la presencia de errores–Recuperarse de cada error lo suficientemente rápido para poder detectar errores subsiguientes–Tratar de evitar mensajes falsos de error
Errores Léxicos•Un error que produce un token erróneo•Errores léxicos posibles–Un identificador, palabra reservada u operador mal escrito (typo
Errores Sintácticos•Un programa que no satisface la CFG del lenguaje•Ejemplos–Expresión aritmética con paréntesis no balanceados–Un punto y coma faltante
Errores Semánticos•Un error que necesita información sensitiva al contexto para ser identificado•Ejemplos–Un operador aplicado a un tipo incompatible de operando–Acezar una variable no declarada