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

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

Ejercicio M3

Apartado M3.1

La siguiente gramática incontextual G1 modela expresiones formadas con identificadores, dos operadores aditivos binarios asociativos por la izquierda e igual de prioritarios, un operador de cambio de signo unario prefijo más prioritario que ambos, y paréntesis:

<Expresión> -> <Expresión> opmas <Término> | <Expresión> opmenos <Término> | <Término>
<Término> -> id | apar <Expresión> cpar | opmenos <Término>

Es obvio que G1 no es LL(1), al tener recursión por la izquierda. Como ejercicio, verifícalo construyendo la correspondiente tabla de análisis.

Apartado M3.2

Aplicando el método de eliminación de la recursión por la izquierda inmediata general, obtén una gramática incontextual G2 equivalente a la anterior (es decir, que genere el mismo lenguaje).

Comprueba si G2 es LL(1).

Observa que en G2 se ha perdido el modelado de las asociatividades de los operadores !!!

Escribe una gramática G3 con partes derechas regulares equivalente a G1 y adecuada para un analizador RLL(1) en el que queramos tener en cuenta las asociatividades de los operadores indicadas al principio.