Imperiofilia, de José Luis Villacañas, desde la teoría del ...
Teoría de Autómatas I
description
Transcript of Teoría de Autómatas I
Analizadores Sintácticos LL(k) y LR(k)
Ejercicio:– Producir un Autómata de Pila equivalente a la gramática:
S → xSyS → λ
– Solución página 116– Segmento de programa equivalente (figura 2.26)– Utilizar el autómata de pila con la cadena de entrada “xxyy”
a partir del símbolo inicial S El autómata es indeterminista No sabemos qué regla utilizar
Analizadores Sintácticos LL(k) y LR(k)
Principio de preanálisis:– Técnica que permite observar los símbolos
siguientes sin leerlos– El símbolo siguiente se almacena en un buffer– Solución ejercicio anterior Figura 2.27
¿Cuántos símbolos son necesarios?– Depende de las reglas de la gramática
Gramática figura 2.25 → 1 Gramática figura 2.28 → 2
Analizadores Sintácticos LL(k) y LR(k)
Lenguajes LL(k):– L → Lee su entrada de izquierda a derecha– L → Produce una derivación por la izquierda– k → Nº de símbolos de preanálisis necesarios
– A mayor k mayor potencia (más lenguajes)– Existen lenguajes independientes del contexto no
LL(k) → LL(k) < LIC xn / n є N xn yn / n є N
Analizadores Sintácticos LL(k) y LR(k)
Análisis sintáctico LL– Tablas de análisis sintáctico:
Filas = No-Terminales Columnas = Terminales Figura 2.29 (página 119)
– Algoritmo genérico de análisis sintáctico Puede usarse con cualquier tabla (Figura 2.30)
Ejercicios 3 y 4, página 121
Analizadores Sintácticos LL(k) y LR(k)
Lenguajes LR(k):– L → Lee su entrada de izquierda a derecha– R → Produce una derivación por la derecha– k → Nº de símbolos de preanálisis necesarios
– LL → Análisis descendente Del todo a las partes (S → xy)
– LR → Análisis ascendente De las partes al todo (xy → S)
Analizadores Sintácticos LL(k) y LR(k)
Lenguajes LR(k):– Conversión de una gramática en un autómata de Pila →
Figura 232 (página 123)– Análisis cadena zazabzbz → Figura 233 (página 124)– Se produce una derivación por la derecha (página 125) – Ejercicios 1 y 2 (Página 133)
– Problema del indeterminismo: ¿Cuándo reducir? Figura 2.33: Paso 4 → ¿Por qué reduce z a M y no a N? Figura 2.33: Paso 9 → ¿Por qué reduce z a N y no a M?
Analizadores Sintácticos LL(k) y LR(k)
Tablas de análisis LR(k):– Filas: Símbolos especiales– Columnas: Terminales, No-Terminales y FDC– Se construyen a partir de autómatas (Figura 2.37)– Ejemplo en Figura 2.34– Traza en la Figura 2.36
Algoritmo de análisis LR(k)– Puede usarse con cualquier tabla (figura 2.35)
Analizadores Sintácticos LL(k) y LR(k)
LR(k) incluye más lenguajes que LL(k)
LR(k) es justamente la clase de los lenguajes independientes del contexto deterministas
Existen lenguajes independientes del contexto que no son LR(k)
– xnyn / n є N+ xny2n / n є N+