Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Las Gramticas LL
Gramticas con Parsing Eficiente
Universidad de Cantabria
Gramticas LL
Outline
Gramticas LL
Definicin
Una gramtica libre de contexto G = (V , , Q0 , P) se dice de
clase LL(k ) si verifica la siguiente propiedad: Dadas dos
derivaciones, donde , A V , , , (V ) , del tipo
siguiente:
Q0 `lm A `lm ` x ,
Q0 `lm A `lm ` y ,
Si FIRSTk (x) = FIRSTk (y ), entonces = .
Gramticas LL
Idea
Gramticas LL
Observacin
Propiedades:
Son gramticas no ambiguas.
Existe una tabla que permite generar rboles sintcticos
para cualquier palabra con un nmero de operaciones
proporcional a la longitud.
Gramticas LL
Ejemplos
Ejemplo
Un ejemplo de gramtica LL(1) es la dada mediante:
Q0 7 aAQ0 | b, A 7 a | bQ0 A
Gramticas LL
Ejemplos
Ejemplo
La gramtica {Q0 7 | abA, A 7 Q0 aa | b} es una gramtica
LL(2)
Gramticas LL
Ejemplos
Gramticas LL
Teorema
Teorema
Una gramtica G = (V , , Q0 , P) es LL(k ) si y solamente si se
verifica la siguiente propiedad:
Dadas dos producciones A 7 y A 7 tales que A es
accesible y se tiene Q0 `lm A, con y (V ) ,
entonces
FIRSTk () FIRSTk () = .
Gramticas LL
Idea
Gramticas LL
Propiedades
Definicin
Sea L1 , L2 , dos lenguajes definimos:
(
(
|xy | k y = xy , o
L1 k L2 = : x 1 , y 2
w = FIRSTk (xy ).
Gramticas LL
Resultado
Teorema
Dada una gramtica libre de contexto G y una forma sentencial
se tiene que
FIRSTk () = FIRSTk () k FIRSTk ().
Gramticas LL
Algoritmo
Antes de Comenzar..
Gramticas LL
Objetivo
Gramticas LL
Algoritmo
Gramticas LL
Algoritmo
Gramticas LL
Resultado
Teorema
Dada una gramtica libre de contexto G, y dada T (G) la tabla
construida por el algoritmo anterior, entonces G es LL(1) si y
solamente si todos las casillas de la tabla T (G) contienen
exactamente una produccin o una de las palabras
seleccionadas (pop, accept, error).
Gramticas LL
Ejemplo
Como ejemplo, consideremos la gramtica G = (V , , Q0 , P),
donde las producciones son:
P := {Q0 7 aAQ0 | b, A 7 a | bQ0 A}.
Enumeramos estas producciones del modo siguiente:
(1) Q0 7 aAQ0
(2)
Q0 7 b
(3)
A 7 a
(4) A
7 bQ0 A
Gramticas LL
Ejemplo
Q0
A
a
b
a
1
3
pop
error
error
b
2
4
error
pop
error
error
error
error
error
accept
Gramticas LL
Observaciones Finales
Gramticas LL