El documento describe diferentes tipos de análisis sintáctico como el análisis descendente con retroceso y el análisis ascendente con retroceso. También discute los tipos de errores sintácticos como léxicos y sintácticos, y los tipos de gramáticas como las gramáticas de contexto libre y las gramáticas LL(1) que pueden ser aceptadas por un analizador sintáctico.
1. PONTIFICIA UNIVERSIDAD
CATÓLICA DEL ECUADOR
SEDE IBARRA
Nombre: Bryan Arellano
Fecha: 08/06/2016
Las funciones que cumple el analizador sintáctico.
El analizador sintáctico obtiene una cadena de componentes léxicos del analizador léxico, y
comprueba si la cadena puede ser generada por la gramática del programa fuente.
En la práctica, el analizador sintáctico también hace:
o Acceder a la tabla de símbolos (para hacer parte del trabajo del analizador
semántico).
o Chequeo de tipos ( del analizador semántico).
o Generar código intermedio.
o Generar errores cuando se producen.
Tipos de errores sintácticos
Los errores en la programación pueden ser de los siguientes tipos:
o Léxicos, producidos al escribir mal un identificador, una palabra clave o un
operador.
o Sintácticos, por una expresión aritmética o paréntesis no equilibrados.
o Semánticos, como un operador aplicado a un operando incompatible.
o Lógicos, puede ser una llamada infinitamente recursiva.
Tipos de gramática que acepta un analizador sintáctico.
2. La gramática que acepta el analizador sintáctico es una gramática de contexto libre:
Ejemplo:
Árbol sintáctico de una sentencia de lenguaje.
Básicamente un árbol sintáctico se corresponde con una sentencia, obedece a una
gramática, y constituye una representación que se utiliza para describir el proceso de
derivación de dicha sentencia. La raíz del árbol es el axioma inicial y, según nos
convenga, lo dibujaremos en la cima o en el fondo del árbol.
Ejemplo:
Análisis descendente con retroceso
El método de análisis descendente con retroceso pretende buscar en el árbol universal
a la sentencia a reconocer; cuando lo encuentre, el camino que lo separa de la raíz nos
da el árbol sintáctico. Ahora bien, es posible que la sentencia sea errónea y que no se
encuentre como hoja del árbol lo que, unido a que es muy probable que el árbol sea
3. infinito, nos lleva a la necesidad de proponer un enunciado que nos indique cuándo se
debe cancelar la búsqueda porque se da por infructuosa
Ejemplo:
Análisis descendente con recursión. Diagramas de Conway
Un diagrama de Conway es un grafo dirigido donde los elementos no terminales
aparecen como rectángulos, y los terminales como círculos.
Para demostrar que permite representar las mismas gramáticas que la BNF, se hace
por inducción sobre las operaciones básicas de BNF:
4. Análisis descendente de gramáticas LL(1)
Una gramática LL(1) es aquella en la que su tabla de chequeo de sintaxis no posee
entradas múltiples, o sea, es suficiente con examinar sólo un símbolo a la entrada, para
saber qué regla aplicar. Toda gramática reconocible mediante el método de los
diagramas de Conway es LL(1).
Análisis Ascendente con retroceso.
Cuando se da cuenta que llega a una situación en la que no puede continuar, entonces
vuelve atrás deshaciendo todos los cambios. En el análisis con retroceso no se
permiten las reglas J, puesto que estas se podrán aplicar de forma indefinida.