Вы находитесь на странице: 1из 2

Su diseo e implementacin se simplificaran mucho las primeras versiones de

nuestros programas suelen ser incorrectas y un buen compilador debera


ayudar al programador a identificar y localizar errores ah q considerar q desde
el principio el manejo de errores puede simplificar la estructura de un
compilador y mejorar su respuesta a los errores .
Los errores en la programacin pueden ser de los siguientes tipos :
A) lxicos: producidos al escribir mal un identificador, una palabra reservada o
un operador
B) sintctico: por una expresin aritmtica (no equilibrados)
C) SEMANTICO: por ejemplo como un operador aplicado a un operando
incompatible
D) lgicos: puede ser una llamada infinitamente recursiva
E) cuando el programa no hace lo q el programador realmente desea resulta
evidente q los errores de correccin no pueden ser detectados por un
compilador ,Debido .por otro lado la deteccin de errores lgicos implica un
esfuerzo computacional muy grande en tanto q el compilador debe ser capaz
de averiguar los distintos flujos q puede seguir un programa en ejecucin lo
cual en muchos casos es costoso e imposible
El manejo de errores de sintaxis es el mas complicado pero nos interesa q
cuando el compilador encuentre un error , no sea cancelada la compilacin ,
sino q se recupere y siga buscando errores .recuperar un error no quiere decir
corregirlo , si no ser capas de seguir construyendo el rbol sintctico a pesar
de los errores un manejador de errores sintcticos debe tener como objetivos
a) Indicar los errores de forma clara y precisa
b) recuperarse del error
c) distinguir entre errores y advertencias
d) no ralentizar significativamente la compilacin
un buen compilador debe hacerse teniendo en cuenta los errores q se puedan
producir con lo q se consigue simplificar su estructura
existen varias estrategia para generar los errores detectados
a) Ignorar el problema denominada panic-mode ,consiste en i ignorar el
resto de la entrada hasta llegar a una condicin de por ejemplo sean las

b) Recuperacin a nivel de frase se intenta corregir el error una vez


descubierto, pero ah q tener cuidado con este mtodo por q puede dar
lugar a recuperaciones infinitas
c) Reglas de produccin adicionales :este mecanismo aade a la gramtica
formal q describe al lenguaje reglas de produccin para reconocer los
errores mas comunes : siguiendo con el caso anterior se puede proponer
algo como
Sent_erronea-- sent_sin_acabar sent _acabada
Sent _acabada sentencia ;
Sent_ sin_acabar sentencia
Lo cual nos da mayor control e incluso permite recuperar y corregir el
problema y emitir una advertencia en lugar de un error
d) Correccin global :este mtodo trata por todos los medios de obtener un
rbol sintctico para una sentencia de tokens si ah algn error ,este
mtodo infiere una secuencia de tokens sintcticamente correcta lo mas
parecida ala original y genera el rbol para dicha secuencia

Вам также может понравиться