2. 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
3. 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
6. 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)
7. 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
8. 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
9. 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
10. 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
11. 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
13. •¡¡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
15. Errores Léxicos
•Un error que produce un token
erróneo
•Errores léxicos posibles
–Un identificador, palabra
reservada u operador mal escrito
(typo
16. 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
17. 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
18. Errores Lógicos
•Errores en el modelo de ejecución
•Ejemplos
–Recursión infinita
–Acezar un arreglo fuera de los límites
–De referenciar un nullpointe