Professional Documents
Culture Documents
Las Gramticas LL
Gramticas con Parsing Eficiente
Universidad de Cantabria
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
Outline
El Problema
FOLLOW
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
El Problema
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
El Problema
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
El Problema
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
FIRST
Definicin
Sea G := (V , , Q0 , P) una gramtica libre de contexto. Para
cada forma sentencial (V ) y para cada k N
definiremos la funcin
FIRSTkG () := {x :
|x| = k
|x| < k
, `G
lm x }.
`G
lm x
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
FIRST
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
FIRST
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
FIRST
Definicin
Sean L1 , . . . , Ln (V ) lenguajes. Definiremos el lenguaje
L1 1 1 Ln (V ) mediante la siguiente igualdad: Sea
j {1, . . . , n} tal que Li para 1 i j 1 y 6 Lj .
Entonces,
L1 1 1 Ln :=
j
[
Li .
i=1
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
FIRST
Teorema
Con las anteriores notaciones, se tienen las siguientes
propiedades.
1
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
Notacin
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
Algoritmo
Hallar V := {A V : A ` }.
Si A , entonces F (A) := {A}
en otro caso
G(A) :=
{A} si A 6 V
F (A) :=
{A, } si A V
mientras F (A) 6= G(A) para algn A V hacer
G(A) := F (A)
F (A) := {F1 : X 7 , X F (A)} {F (A)}
fin mientras
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
FOLLOW
Definition (FOLLOW)
Para cada forma sentencial (V ) definiremos la funcin
FOLLOWkG () del modo siguiente.
Si existe una forma sentencial (i.e. si Q0 `G ), con
(V ) , entonces FOLLOWkG ().
Adicionalmente, definamos
FOLLOWkG () := {x : Q0 ` , x FIRSTkG ()}.
De nuevo, omitiremos el superndice G cuando no genere
confusin.
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
FOLLOW
Gramticas LL
El Problema
Clculo del FIRST
FOLLOW
Algoritmo
F (B)
B7A 0 , FIRST ( 0 )
fin mientras
Gramticas LL
F (A)