Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx INSTITUTO TECNOLÓGICO SUPERIOR PROGRESO INGENIERÍA EN SISTEMAS COMPUTACIONALES ASIGNATURA Lenguaje y Autómatas 2 DOCENTE Holzen Atocha Martínez García TRABAJO Evidencia 2 - Investigación de errores semánticos PRESENTA Erick Espinosa Cajun Progreso Yucatán, 19 de 09 de 2023. Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Introducción Un error semántico ocurre cuando la sintaxis de un código es correcta, pero su significado no es el deseado. Los compiladores e intérpretes se encargan de verificar la estructura del código, pero no su significado, por lo que no detectan errores semánticos. Estos errores pueden causar que un programa se ejecute de manera anormal, incluso sin mostrar un mensaje de error, lo que a menudo se conoce como que el equipo se quede 'colgado'. Los compiladores, en su mayoría, deben lidiar con entradas incorrectas, especialmente en las primeras etapas de desarrollo de un programa. Se utilizan para realizar comprobaciones como si las variables se han declarado antes de usarlas o si faltan corchetes, entre otras. Por lo tanto, la gestión de errores es una parte crucial de un compilador, y los diseñadores de compiladores deben considerar posibles errores al diseñar un lenguaje de programación. Por ejemplo, es importante asegurarse de que cada declaración en el lenguaje comience con una palabra clave diferente, a excepción de las asignaciones. Sin embargo, es fundamental recordar que los errores deben considerarse desde el principio al diseñar un lenguaje de programación. Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Clasificación de errores semánticos 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: Acceso incorrecto a variables: Esto ocurre cuando una variable se utiliza en un contexto donde su tipo o valor no es apropiado. Por ejemplo, intentar realizar operaciones aritméticas en una variable que almacena texto. Incompatibilidad de tipos de datos: Sucede cuando se intenta realizar una operación entre variables o valores que no son compatibles según las reglas de tipos de datos del lenguaje. Por ejemplo, sumar una cadena de texto y un número. Malentendidos en la lógica del programa: Estos errores se producen cuando la lógica de un programa no refleja correctamente la intención del desarrollador. Puede resultar en resultados incorrectos o comportamientos inesperados. Referencias a elementos inexistentes: Esto implica el intento de acceder a variables, objetos o elementos que no existen en el contexto actual del programa. Gestión incorrecta de punteros y memoria: En lenguajes que permiten la manipulación de punteros, los errores semánticos pueden surgir cuando se accede incorrectamente a la memoria o se producen fugas de memoria. Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Detección de errores semánticos: Análisis Estático: Análisis de Flujo de Datos: Examina cómo los datos fluyen a través del programa para detectar posibles inconsistencias o mal uso de variables. Análisis de Puntos de Acceso: Identifica dónde se accede a variables y datos, lo que puede ayudar a prevenir errores de asignación y uso incorrecto. Análisis de Tipos: Verifica que las operaciones se realicen en tipos de datos compatibles y que no haya conflictos en las conversiones de tipos. Análisis de Alcance: Comprueba la visibilidad y la vida útil de las variables y garantiza que se utilicen dentro de su alcance definido. Verificación Formal: Modelado Formal: Utiliza técnicas de modelado matemático para verificar propiedades específicas del lenguaje o autómata y garantizar que cumplan con las especificaciones semánticas. Verificación de Modelos: Emplea técnicas de verificación formal, como model checking, para explorar exhaustivamente todas las posibles ejecuciones y detectar violaciones de propiedades semánticas. Pruebas y Validación: Pruebas Unitarias y de Integración: Diseña pruebas que se centren en la detección de errores semánticos en módulos individuales y en la interacción entre ellos. Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Pruebas de Propiedades Semánticas: Desarrolla pruebas específicas que verifiquen propiedades semánticas críticas, como la corrección de bucles o la consistencia de datos. 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: • El proceso de compilación se detiene al ocurrir el error y el compilador debe informar el error. • El proceso de compilación continúa cuando ocurre el error y se informa del error en un archivo listado. • El compilador no reconoce el error y por tanto no advierte al programador. Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Conclusión: Los errores semánticos son desviaciones de las reglas de significado en un programa de computadora o en la definición de un lenguaje formal. En el contexto de lenguajes y autómatas, estos errores pueden tener un impacto sustancial en la comprensión y el funcionamiento de un programa o sistema, incluso llegando al punto en el que el programa no pueda ser compilado correctamente. Instituto Tecnológico Superior Progreso Dirección General Subdirección Académica Boulevard Tecnológico de Progreso S/N por 62, Progreso, Yucatán. C.P. 97320 Tels. 969 934 3023, tecnm.mx | progreso.tecnm.mx Referencias: • 4.5 Errores semánticos. (s. f.). http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/li bro32/45__errores_semnticos.html • C: Errores semanticos Learning, formerly Lynda.com. (2022, 23 mayo). LinkedIn. https://www.linkedin.com/learning/c- errores-comunes-y-como-solucionarlos http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro32/45__errores_semnticos.html http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro32/45__errores_semnticos.html https://www.linkedin.com/learning/c-errores-comunes-y-como-solucionarlos https://www.linkedin.com/learning/c-errores-comunes-y-como-solucionarlos
Compartir