Teoría de Autómatas I

11
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED

description

Teoría de Autómatas I. 2º curso Ingeniería Técnica en Informática de Sistemas UNED. Sesión 6. Analizadores Sintácticos LL(k) y LR(k). Analizadores Sintácticos LL(k) y LR(k). Ejercicio: Producir un Autómata de Pila equivalente a la gramática: S → xSy S → λ Solución página 116 - PowerPoint PPT Presentation

Transcript of Teoría de Autómatas I

Page 1: Teoría de Autómatas I

Teoría de Autómatas I

2º cursoIngeniería Técnica en Informática de SistemasUNED

Page 2: Teoría de Autómatas I

Sesión 6

Analizadores Sintácticos LL(k) y LR(k)

Page 3: 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

Page 4: Teoría de Autómatas I

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

Page 5: Teoría de Autómatas I

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

Page 6: Teoría de Autómatas I

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

Page 7: Teoría de Autómatas I

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)

Page 8: Teoría de Autómatas I

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?

Page 9: Teoría de Autómatas I

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)

Page 10: Teoría de Autómatas I

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+

Page 11: Teoría de Autómatas I

Analizadores Sintácticos LL(k) y LR(k)

Ejercicios 1 y 2 página 133