Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Gramaticas
1. PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR
SEDE IBARRA
Nombre: José Ibadango
Fecha: 2016-06-08
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.
El analizador sintáctico también hace:
• Acceder a la tabla de símbolos (para hacer parte del trabajo del analizador
semántico).
• Chequeo de tipos ( del analizador semántico).
• Generar código intermedio.
• Generar errores cuando se producen.
2. Tipos de errores sintácticos
Errores léxicos
Los errores léxicos se detectan cuando el analizador léxico intenta reconocer
componentes léxicos en el código fuente.
Errores sintácticos
Un error de sintaxis se detecta cuando el analizador sintáctico espera un símbolo
que no corresponde al que se acaba de leer. Los analizadores sintácticos LL y
LR tienen la ventaja de que pueden detectar errores sintácticos lo más pronto
posible, es decir, se genera un mensaje de error en cuanto el símbolo analizado
no sigue la secuencia de los símbolos analizados hasta ese momento.
Error semántico
Los errores semánticos corresponden a la semántica del lenguaje de
programación, la cual normalmente no está descrita por la gramática. Los errores
semánticos más comunes son la omisión de declaraciones.
Errores Lógicos
Los comete el programador
Ejemplo: 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:
• Gramática : G (N, T, P, S)
N = No terminales.
T = Terminales.
P = Reglas de Producción
S = Axioma Inicial.
3. Árbol sintáctico de una sentencia de lenguaje.
Es una representación que se utiliza para describir el proceso de derivación de
dicha sentencia.
4. Análisis descendente con retroceso
El método parte del axioma inicial y aplica todas las posibles reglas al no
terminal más a la izquierda.
5. Análisis descendente con recursión. Diagramas de Conway
Una gramática de contexto libre puede expresar un lenguaje al igual que puede
hacerlo la notación BNF, y los 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.
6. 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)
El método consiste en seguir un algoritmo partiendo de: - La cadena a
reconocer, junto con un apuntador, que nos indica cual es el token actual. - Una
pila de símbolos ( terminales y no terminales) - Una tabla asociada de forma
unívoca a una gramática. En esta asignatura no vamos a ver como calcular
dicha tabla. La cadena de entrada acabará en el símbolo $, que consideramos
como si fuese un EOF( End Of File - Fin de Fichero).
7. Análisis Ascendente con retroceso.
En el análisis con retroceso no se permiten las reglas J, puesto que estas se
podrán aplicar de forma indefinida.