Logo Studenta

ADA2 errores-semánticos-Wilberth-Madera

¡Estudia con miles de materiales!

Vista previa del material en texto

Instituto Tecnológico Superior Progreso 
1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Instituto Tecnológico Superior Progreso 
CARRERA: 
Ingeniería en Sistemas Computacionales 
 
MATERIA: 
Lenguaje Autómatas 2 
 
Actividad: 
Investigación de errores semánticos 
Docente: 
Dr. Holzen Atocha Martínez García 
Alumno: 
Wilberth Rafael Madera Poot 
 
SEMESTRE: 
7mo 
 
 
 
 
Instituto Tecnológico Superior Progreso 
2 
 
INTRODUCCIÓN: 
El análisis semántico revisa el programa fuente que nos permite tratar de 
encontrar errores semánticos y reúne la información sobre los tipos para la fase 
después de generar el código. ya que en ella se utiliza la estructura jerárquica 
determinada por la clase de análisis sintáctico para identificar los operadores y 
operandos de expresiones y proposiciones. Sintaxis de un lenguaje de 
programación es el conjunto de reglas formales que especifican la estructura de 
los programas pertenecientes a dicho lenguaje. Semántica de un lenguaje de 
programación es el conjunto de reglas que especifican el significado de cualquier 
sentencia sintácticamente válida. 
 Ya que el análisis semántico es uno de los procesos de los lenguajes que están 
en la fase encargada de detectar valides en las sentencias que son aceptadas por 
el analizador sintáctico 
Alguno de los compiladores utiliza la gramática libre de texto para poder describir 
el texto de manera más sintáctica en el lenguaje. 
 Una vez que hemos comprobado las diferentes sentencias sintácticamente ahora 
deberemos verificar que el identificador como parte de la expresión que hemos 
declarado para poder llevar acabo. 
 
MANEJO DE ERRORES SEMÁNTICOS 
Los errores que puede detectar el analizador sintáctico son aquellos que violan las 
reglas de una gramática independiente del contexto. Ya hemos mencionado que 
algunas de las características de un lenguaje de programación no pueden 
enunciarse con reglas independientes del contexto, ya que dependen de él; por 
ejemplo, la restricción de que los identificadores deben declararse previamente. 
Por lo tanto, los principales errores semánticos son: 
Conversiones de tipos no permitidas 
int x; 
x = 4.32; 
 Error: Ej1.java [6:1] possible loss of precision 
Variables usadas y no definidas 
 Operandos de tipos no compatibles 
Instituto Tecnológico Superior Progreso 
3 
 
if (x || 5) x = 0; 
 Error: Ej2.java [7:1] operator || cannot be applied to int,int 
 
Es más difícil introducir métodos formales para la recuperación de errores 
semánticos que para la recuperación de errores sintácticos, ya que a menudo la 
recuperación de errores semánticos es ad hoc. No obstante, puede requerirse que, 
por lo menos, el error semántico sea informado al programador, que se le ignore y 
que, por tanto, se suprimirá la generación de código. 
Sin embargo, la mayoría de los errores semánticos pueden ser detectados mediante 
la revisión de la tabla de símbolos, suponiendo un tipo que se base en el contexto 
donde ocurra o un tipo universal que permita al identificador ser un operando de 
cualquier operador del lenguaje. Al hacerlo, evitamos la producción de un mensaje 
de error cada vez que se use la variable no definida. Si el tipo de un operando no 
concuerda con los requisitos de tipo del operador, también es conveniente 
reemplazar el operando con una variable ficticia de tipo universal. 
CLASIFICACIÓN DE ERRORES 
Durante un proceso de resolución de problemas existen varias formas en que 
pueden surgir errores, las cuales se reflejan en el código fuente del programa. 
Desde el punto de vista del compilador, los errores se pueden dividir en 
dos categorías 
1. Errores visibles y Errores invisibles 
Los errores invisibles en un programa son aquellos que no puede detectar el 
compilador, ya que no son el resultado de un uso incorrecto del 
lenguaje de programación, sino de decisiones erróneas durante el proceso de 
especificación de la mala formulación de algoritmos. Por ejemplo, si se escribe 
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ón 
sintáctica. 
Los errores visibles, a diferencia de los errores lógico, pueden ser detectados por 
el compilador o al menos por el sistema de ejecución 
1. Errores de ortografía 
Instituto Tecnológico Superior Progreso 
4 
 
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 en 
tres clases, dependiendo de la fase del compilador en el cual se detectan 
1.Errores Léxicos; 
2. Errores Sintácticos; 
3. Errores Semánticos 
Un error de sintaxis se detecta cuando el analizador sintáctico espera un símbolo 
que no corresponde al que se acaba de leer. 
Los analizadores sintácticos LL y Le tienen la ventaja de que pueden detectar 
errores sintácticos lo más pronto posible, es decir, se genera un mensaje de error 
en cuanto el símbolo analizado no sigue la secuencia de los símbolos analizados 
hasta ese momento 
Los errores semánticos corresponden a la semántica del lenguaje de 
programación, la cual normalmente no está descrita por la gramática. Los errores 
semánticos más comunes son la omisión de declaraciones. 
UN ERROR DE EJECUCIÓN 
típico ocurre cuando el índice de una matriz no es un elemento del 
subintervalo especificado o por intentar una división entre cero. En tales 
situaciones, se informa del error y se detiene la ejecución del programa. 
EFECTOS DE LOS ERRORES 
La detección de un error en el código fuente ocasiona ciertas 
reacciones del compilador. El comportamiento de un compilador en el caso de 
que el código fuente contenga un error puede tener varias facetas: 
1. El proceso de compilación de detiene al ocurrir el error y el compilador debe 
informar del error. 
2. El proceso de compilación continúa cuando ocurre el error y se informa de este 
en un archivo de listado. 
3. El compilador no reconoce el error y por tanto no advierte al programador. 
 
Instituto Tecnológico Superior Progreso 
5 
 
 
 
MANEJO DE ERRORES EN EL ANÁLISIS SINTÁCTICO 
El analizador sintáctico detecta un error de sintaxis cuando el analizador léxico 
proporciona el siguiente símbolo y éste es incompatible con el estado actual del 
analizador sintáctico. 
1.Paréntesis o corchetes omitidos, por ejemplo, x : = y * (1 + z; 
2. Operadores u operando omitidos, por ejemplo, x : = y (1 + z ); 
3. Delimitadores omitidos, por ejemplo, x : = y + 1 IF a THEN y : = z 
 
 
 
REFERENCIAS 
Molina, M. M. (s. f.). MANEJO DE ERRORES SEMÁNTICOS. prezi.com. 
https://prezi.com/jmntejze1wxf/manejo-de-errores-semanticos/ 
 
1.7 Manejo de errores semánticos con referencia. (s. f.). Scribd. 
https://es.scribd.com/document/596130858/1-7-Manejo-de-errores-semanticos-con-
Referencia 
 
Mo. (s. f.). UNIDAD 7: MANEJO DE ERRORES. 
https://compiladoresasignatura.blogspot.com/2011/05/unidad-vii-manejo-de-
errores.html 
uniwebsidad. (s. f.). Capítulo 12. Manejo de errores y excepciones (Algoritmos de 
programación con Python). https://uniwebsidad.com/libros/algoritmos-
python/capitulo-12 
https://prezi.com/jmntejze1wxf/manejo-de-errores-semanticos/
https://compiladoresasignatura.blogspot.com/2011/05/unidad-vii-manejo-de-errores.html
https://compiladoresasignatura.blogspot.com/2011/05/unidad-vii-manejo-de-errores.html

Otros materiales

Materiales relacionados

10 pag.
book-attachment-3030

SIN SIGLA

User badge image

Yovany Gaona

31 pag.
01 Semana 1 - Clase 1

SIN SIGLA

User badge image

Edson Ezequiel Andy Jipa

8 pag.
JENUI_1998_070

SIN SIGLA

User badge image

Karen Marlene Valdez