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

Tema 3: Análisis sintáctico - Ejercicios de análisis LL(1) y RLL(1)

Ejercicio A7

Apartado A7.1

Averigua si la siguiente gramática es LL(1), construyendo la tabla de análisis LL(1):

<A> -> a <B> a
<B> -> b b <A> b b
<B> -> c <C>
<B> -> <D> <E> <F>
<B> -> <G> <H> i
<C> -> c <C>
<C> ->
<D> -> d e d
<D> ->
<E> -> e d e
<E> ->
<F> -> f f f
<F> ->
<G> -> g
<H> -> h <H>
<H> ->

Apartado A7.2

Utilizando la tabla de analisis LL(1) anterior, analiza la cadena a d e d f f f a.

Inventa después ejemplos de cadenas que no pertenezcan al lenguaje modelado por la gramática, y comprueba que el método de análisis detecta un error sintáctico.

Apartado A7.3

Averigua si la siguiente gramática es RLL(1), viendo la solución anterior.

<A> -> a ( b b <A> b b | c+ | (d e d)? (e d e)? (f f f)? | <G> h* i) a
<G> -> g

Apartado A7.4

Observa ahora la siguiente gramática, y trata de decir si es RLL(1) sin tener que rellenar la tabla de análisis:

<A> -> a ( b b <A> b b | c+ | (d e d)? (e d e)? (f f f)? | <G> h* i) b
<G> -> g

Apartado A7.5

Haz lo mismo con la siguiente gramática:

<A> -> a ( b b <A> b b | c+ | (d e d)? (e d e)? (f f f)? | <G> h* i) e
<G> -> g

Apartado A7.6

Haz lo mismo con la siguiente gramática:

<A> -> a ( b b <A> b b | c+ | (d e d)? (e d e)? (f f f) | <G> h* i) b
<G> -> g