Practica PLC MIcrologix 1400 con pantalla HMI y servomotor
Tratamiento de errores
1. ESCUELA DE INGENIERÍA
SEMESTRE MAYO –AGOSTO 2020
COMPILADORES
NOMBRE: MAURICIO PINTO
FECHA: 18/06/20
¿Qué función cumple la función manejo de errores?
Los errores encontrados en las distintas fases de análisis se envían a un módulo denominado
manejo de errores. En el caso más sencillo puede ser un subprograma al que se le invoca
enviándole el código de error, y que se encarga de escribir un mensaje con el error
correspondiente, y el número de línea donde se ha producido, así como de cortar el proceso
de traducción. Si se desea construir un tratamiento de errores más completo, por ejemplo,
detectando todos los errores del programa fuente, el módulo se complica dado que los
analizadores deben proseguir su trabajo con falta de datos.
Cuáles son los errores léxicos más importantes, realice un organizador gráfico para
representar los mismo.
¿A qué se refieren los errores semánticos?
En cierto modo, este tipo de error es el más difícil de depurar, ya que ni el compilador ni el
sistemaproporcionan información sobre qué estáfallando. Lo único cierto es que elprograma
no se está comportando como debería.
Números
incorrectos
Errores en
palabras
Reservadas
Fin de Archivo
Nombres
Ilegales de
Identificador
es
2. ¿Cómo se determina que se ha producido en errorsemántico en el desarrollo de un
programa?
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 pretendía. La construcción obedece las reglas del lenguaje, y por
ello el compilador o intérprete no detectan los errores semánticos. Los compiladores e
intérpretes sólo se ocupan de la estructura del código que se escribe, y no de su significado.
¿Cómo se pueden corregir los errores semánticos?
El primer paso para corregirlo es intentar encontrar una correspondencia entre el código del
programa y el comportamiento que se observa. Quizá las variables no contengan los datos
correctos, o bien es posible que el programa siga un camino distinto del pretendido.
En pascal, ¿cómo están las reglas que describen su estructura sintáctica?
Un programa se compone de bloques, un bloque de proposiciones, una proposición de
expresiones, una expresión de componentes léxicos, y así sucesivamente. Se puede describir
la sintaxis de las construcciones de los lenguajes de programación por medio de gramáticas de
contexto libre o notación BNF ( Backus-Naur Form).
¿Qué ventajas significativas ofrecen las gramáticas a los diseñadores de lenguaje y a los
desarrolladores de compiladores?
Las gramáticas son especificaciones sintácticas y precisas de lenguajes de programación.
A partir de una gramática se puede generar automáticamente un analizador sintáctico.
El proceso de construcción puede llevar a descubrir ambigüedades.
Una gramática proporciona una estructura a un lenguaje de programación, siendo más
fácil generar código y detectar errores.
Es más fácil ampliar/modificar el lenguaje si está descrito con una gramática.
¿En teoría que se supone que la salida del analizador sintáctico es?
En teoría, se supone que la salida del analizador sintáctico es alguna representación del árbol
sintáctico que reconoce la secuencia de tokens suministrada por el analizador léxico
¿En la práctica, el analizador sintáctico tambiénhace?
Accedera la tablade símbolos(parahacer parte del trabajodel analizadorsemántico).
Chequeode tipos(del analizadorsemántico).
Generarcódigointermedio.
Generarerrorescuandose producen.
3. ¿Qué funciones cumple un analizador sintáctico?
Es la fase del analizador que se encarga de chequear el texto de entrada en base a una
gramática dada. Y en caso de que el programa de entrada sea válido, suministra el árbol
sintáctico que lo reconoce.
Con respecto a los errores sintácticos, los errores en la programación ¿de qué tipo suelen
existir?
Léxicos, producidos al escribir mal un identificador, una palabra clave o un operador.
Sintácticos, por una expresión aritmética o paréntesis no equilibrados.
Semánticos, como un operador aplicado a un operando incompatible.
Lógicos, puede ser una llamada infinitamente recursiva.
¿Cuál es el punto más complicado con respectoal análisis sintáctico, porlo tanto, su
objetivo principalen que estará fundamentado?
El manejo de errores de sintaxis es el más complicado desde el punto de vista de la
creación de compiladores. Nos interesa que cuando el compilador encuentre un error, se
recupere y siga buscando errores. Por lo tanto, el manejador de errores de un analizador
sintáctico debe tener como objetivos:
• Indicar los errores de forma clara y precisa. Aclarar el tipo de error y su
localización.
• Recuperarse del error, para poder seguir examinando la entrada.
• No ralentizar significativamente la compilación.
¿Cuáles son las 4 estrategias para corregir errores una vez que son detectados?
1. Ignorar el Problema (Panic Mode)
2. Recuperación a nivel de frase
3. Reglas de producción adicionales para el control de errores
4. Corrección Global
¿En qué consiste ignorar el Panic Mode dentro del manejo de errores?, realice un ejemplo
con un código de 3líneas.
Consiste en ignorar el resto de la entrada hasta llegar a una condición de seguridad. Una
condición tal se produce cuando nos encontramos un token especial (por ejemplo, un ‘;’ o un
‘END’). A partir de este punto se sigue analizando normalmente.
4. ¿Dentro de la recuperación a nivel de fase, en que consiste este proceso?
Intenta recuperar el error una vez descubierto.
¿Las reglasde producción adicionales en queconsisteestemétodo decorrección de
errores?
La gramática se puede aumentar con las reglas que reconocen los errores más comunes
¿La corrección Global, en que se fundamenta susprincipios?
Dada una secuencia completa de tokens a ser reconocida, si hay algún error por el que no se
puede reconocer, consiste en encontrar la secuencia completa más parecida que sí se pueda
reconocer. Es decir, el analizador sintáctico le pide toda la secuencia de tokens al léxico, y lo
que hace es devolver lo más parecido a la cadena de entrada, pero sin errores, así como el
árbol que lo reconoce.