Pasadas multiples

18
PASADAS MULTIPLES

Transcript of Pasadas multiples

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

TABLA DE SIMBOLOS

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

MANEJO DE ERRORES

•¡¡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

Tipos de Errores•Léxicos

•Sintácticos•Semánticos

•Lógicos

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

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