Tema 3: Análisis sintáctico - Ejercicios de modelado LL(1) y RLL(1)
Ejercicio M1
Apartado M1.1
La siguiente gramática incontextual G1 genera el lenguaje
L(G1) = {an
bn : n >= 1}:
<S> -> a <S> b | a b
Es obvio que G1 no es LL(1), al tener lo que se denomina "prefijos comunes": producciones con el mismo no terminal en la parte izquierda y con partes derechas que empiezan igual. Como ejercicio, verifícalo construyendo la correspondiente tabla de análisis.
Apartado M1.2
Escribe una gramática con partes derechas regulares G2 RLL(1), equivalente a la anterior (es decir, que genere el mismo lenguaje).
Apartado M1.3
Escribe una gramática incontextual G3 LL(1) que genere el lenguaje L(G3) = {an c bn : n >= 1}.
Apartado M1.4
Escribe una gramática incontextual G4 LL(1) que genere el lenguaje L(G4) = {d an c bn d : n >= 1}.
Con este ejercicio habrás aprendido a modelar sintácticamente estructuras en las que dos secuencias an y bn, posiblemente separadas por un elemento central c, y posiblemente encerradas por un delimitador d, deben contener la misma cantidad de elementos.