Procesadores de Lenguaje - UJI - Curso 2009/2010 - Grupo TE2

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.