Analizadores Sintácticos

4
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.

Transcript of Analizadores Sintácticos

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.

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

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:

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.