1.7 Manejo de errores semanticos


Un error semántico se produce cuando la sintaxis del código es correcta, pero lasemántica o significado no es el que se pretendía. La construcción obedece las reglas dellenguaje, y por ello el compilador o intérprete no detectan los errores semánticos. Loscompiladores e intérpretes sólo se ocupan de la estructura del código que se escribe, y node su significado.

Un error semántico puede hacer que el programa termine de forma anormal, con o sin unmensaje de error. Hablando en términos coloquiales, puede hacer que el equipo se quede"colgado".

Bueno esto quiere decir que los Errores semánticos son más que nada errores quecometen las personas, al momento de trabajar ya que la computadora no tienepensamiento propio solo acata las reglas por las que fue diseño y su protocolo. Elcomputador trabaja revisando la sintaxis y la estructura del programa mas no la lógica.

¿Cómo manejar errores?

Un compilador es un sistema que en la mayoría de los casos tiene quemanejar unaentrada incorrecta. Sobre todo en las primeras etapas de la creación de un programa, esprobable que el compilador se utilizará para efectuar las características que deberíaproporcionar un buen sistema de edición dirigido por la sintaxis, es decir, para determinarsi las variables han sido declaradas antes de usarla, o si faltan corchetes o algo así. Por lotanto, el manejo de errores es parte importante de un compilador y el escritor delcompilador siempre debe tener esto presente durante su diseño.

Hay que señalar que los posibles errores ya deben estar considerados al diseñar unlenguaje de programación. Por ejemplo, considerar si cada proposición del lenguaje deprogramación comienza con una palabra clave diferente (excepto la proposición deasignación, por supuesto). Sin embargo, es indispensable lo siguiente:

1.El compilador debe ser capaz dedetectar erroresen la entrada;

2. El compilador deberecuperarse de los erroressin perder demasiada información;

3.Y sobre todo, el compilador debeproducir un mensaje de errorque permita alprogramador encontrar y corregir fácilmente los elementos (sintácticamente)incorrectos de su programa.

Los mensajes de error de la forma

*** Error 111 ***

***Ocurrió un error ***

***Falta declaración ***

*** Falta delimitador ***

no son útiles para el programador y no deben presentarse en un ambiente de compilaciónamigable y bien diseñado. Por ejemplo, el mensaje de error ‘Falta declaración’ podríareemplazarse por

*** No se ha declarado la variableNombre***

o en el caso del delimitador omitido se puede especificar cuál es el delimitador esperado.Además de estos mensajes de error informativos, es deseable que el compiladorproduzca una lista con el código fuente e indique en ese listado dónde han ocurrido los errores.

No obstante, antes de considerar el manejo de errores en el analisis léxico y sintáctico, hay que caracterizar y clasificar los errores poibles. Esta clasificacion nos mostrará que un compilador no puede detectar todos los tipos de errores.

Clasificacion de Errores

Durante un proceso de resolucion de problemas existen varias formas en que pueden surgir errores, las cuales se reflejan en el codigo fuente del programa.

Desde el punto de vista del compilador, los errores se pueden dividir en dos categorias:

1. Errores visibles y Errores invisibles

los errores invisibles en un prograa son aquellos que no puede detectar el compilador, ya que no son el resultado de un uso incorrecto del lenguaje de programacion, sino de decisiones erróneas durante el proceso de especificacion o de la mala formulacion de algoritmos. Por ejemplo, si se escribe asi

a : = b+ c; en lugar de a: = b*c;

el error no podrá ser detectado por el compilador ni por el sistema de ejecución.Estos errores lógicos no afectan la validez del programa en cuanto a su correcciónsintáctica. Son objeto de técnicas formales de verificación de programas que no seconsideran aquí. 

Los errores visibles, a diferencia de los errores lógico, pueden ser detectados porel compilador o al menos por el sistema de ejecución. Estos errores se puedencaracterizar de la siguiente manera:

1. Errores de ortografía y

2. Errores  que  ocurren   por omitir   requisitos   formales del   lenguaje   de programación

Clasificación de Ocurrencias

Por lo regular, los errores visibles o detectables por el compilador se dividen entres clases, dependiendo de la fase del compilador en el cual se detectan:

1. Errores Léxicos;

2. Errores Sintácticos;

3. Errores Semánticos;

Comentarios

Entradas populares