1.7 manejo de errores semánticos
MANEJO DE ERRORES
Un compilador es un sistema que en la mayoría de los casos tiene que manejar una entrada incorrecta, sobre todo en las primeras etapas de la creación de un programa, es probable que el compilador se usar para efectuar las características que deberá proporcionar un buen sistema de edición dirigido por la sintaxis, es decir, para determinar si las variables han sido declaradas antes de usarla, o si faltan corchetes o algo as. Por lo tanto, el manejo de errores es parte importante de un compilador y el escritor del compilador siempre debe tener esto presente durante su diseño.
Es indispensable que un compilador:
- Sea capaz de detectar errores en la entrada.
- El compilador debe recuperarse de los errores sin perder demasiada información.
- Debe producir un mensaje de error que permita al programador encontrar y corregir fácilmente los elementos incorrectos de su programa.
Es una de las misiones ms importantes de un compilador, aunque, al mismo tiempo, es lo que ms dificulta su realización. A veces unos errores ocultan otros. A veces un error provoca una avalancha de muchos errores que se solucionan con el primero. Es conveniente un buen manejo de errores, y que el compilador detecte todos los errores que tiene el programa y no se pare en el primero que encuentre.
ERRORES SEMANTICOS
Los errores semánticos son ms sutiles. Un error semántico se produce cuando la sintaxis del código es correcta, pero la semántica o significado no es el que se pretenda. La construcción obedece las reglas del lenguaje, y por ello el compilador o intérprete no detectan errores semánticos. Un error semántico puede hacer que el programa termine de forma anormal, con o sin un mensaje de error.
Los principales errores semánticos son:
Conversiones de tipos no permitidas:
Int x;
x=4.32;
La variable x está declarada como entero, por lo tanto, no se le puede asignar un valor de tipo flotante.
Variables usadas y no definidas
String nombre;
nombre= Jos;
apellido=Prez;
La variable apellido no ha sido declarada
Operandos de tipos no compatibles
Ejemplo:
A: float;
B: String;
A: =B+5;
Análisis Sintáctico:
Se realiza el árbol sintáctico y comprobamos su validez La sintaxis es válida. Análisis Semántico
Comentarios
Publicar un comentario