1.7 Manejo de errores semánticos. 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 pretende. 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. Un error semántico puede hacer que el programa termine de forma anormal, con o sin un mensaje 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 que cometen las personas, al momento de trabajar ya que la computadora no tiene pensamiento propio solo acata las reglas por las que fue diseño y su protocolo. El computador 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...
1.4 Pila semántica en un analizador sintáctico Las pilas y colas son estructuras de datos que se utilizan generalmente para simplificar ciertas operaciones de programación. Estas estructuras pueden implementarse mediante arrays o listas enlazadas. Pila: colección de datos a los cuales se les puede acceder mediante un extremo, que se conoce generalmente como tope. Las pilas tienen dos operaciones básicas: · Push (para introducir un elemento) · Pop (para extraer un elemento) Sus características fundamentales es que al extraer se obtiene siempre el último elemento que acabe de insertarse. Por esta razón también se conoce como estructuras de datos LIFO, una posible implementación mediante listas enlazadas seria insertando y extrayendo siempre por el principio de la lista. Las pilas se utilizan en muchas aplicaciones que utilizamos con frecuencia. Las pilas y colas son estructuras de datos que se utilizan generalmente para simplificar ciertas operaciones de programación. Est...
Manejo de errores sintácticos 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. 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 Estrategias para recuperarse de errores sintácticos Recuperación en modo de pánico Recuperación a nivel de frase Producción de errores Corrección global Acciones de un analizador sintáctico Acceder a la tabla de símbolos. Chequeo de tipos. Generar código intermedio. Generar errores cuando se producen Controla el flujo de tokens reconocidos por parte del analizador léxico. Analizador Sintáctico Acciones Semánticas Se encargan de que los tipos que intervienen en las expresiones sean compatibles o que los parámetros reales de una función sean coherentes con los parámetros formales. F...
Postorden: I,D,R En el orden postorden se recorre de la siguiente manera: subárbol izquierdo, subárbol derecho, raíz. La definición de la clase árbol binario, analizando lo expuesto anteriormente de una variable que simboliza la raíz del árbol y cada nodo del árbol será un objeto de la clase. Postorden : (izquierdo, derecho, raíz ). Para recorrer un árbol binario no vacío en postorden, se deben realizar las siguientes operaciones recursivamente en cada nodo: Atraviese el sub-árbol izquierdo Atraviese el sub-árbol derecho Visite la raíz En postorden, la raíz se recorre después de los recorridos por el subárbol izquierdo y el derecho.