Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Pila
Smbolos gramaticales que se van utilizando
Cadena de Salida
Cadena de Salida posterior al anlisis
LL(1)
Escribir adecuadamente la gramtica Calcular el First y el Follow Construir la tabla de Anlisis Sintctico Hacer el anlisis de sintctico por medio de la pila y la tabla de anlisis
First/Primero
First(X) = {x}
Aadir al First(X) Aadir First (Y) a First (X)
Smbolos No Terminales
Pila
Entrada
13
Ejemplo LL(1)
Partiendo de la Gramtica:
S A B C ( A ) CB ; A | x | S
Ejemplo LL(1)
2. Clculo del First / Primero
Smbolo No Terminal
First ( ; x
S A B C
S A B C
( A ) CB ; A | x | S
Para calcular el first Se usan Los no terminales del lado izquierdo de la produccin
Ejemplo LL(1)
2. Clculo del First / Primero
Smbolo No Terminal
First ( ;, x
S A B C
S A B C
( A ) CB ; A | x | S
Para calcular el first Se usan Los no terminales del lado izquierdo de la produccin
Ejemplo LL(1)
2. Clculo del First / Primero
Smbolo No Terminal
S A B C
S A B C
( A ) CB ; A | x | S
Aadir First (Y) a First (X)
X YZW
Para calcular el first Se usan Los no terminales del lado izquierdo de la produccin
Ejemplo LL(1)
2. Clculo del First / Primero
Smbolo No Terminal
S A B C
S ( A ) A CB B ; A | C x | S
Ejemplo LL(1)
2. Clculo del Follow / Siguiente
Smbolo No Terminal
Follow $
S A B C
S A B C
( A ) CB ; A | x | S
Si X es smbolo inicial
Follow (X) = { $ }
Para cacular el follow Se usan Los no terminales del lado izquierdo de la produccin
Ejemplo LL(1)
2. Clculo del Follow / Siguiente
Smbolo No Terminal
Follow $ )
S A B C
S A B C
( A ) CB ; A | x | S
Para cacular el follow Se usan Los no terminales del lado izquierdo de la produccin
Ejemplo LL(1)
2. Clculo del Follow / Siguiente
Smbolo No Terminal
Follow $ ) )
S A B C
S A B C
( A ) CB ; A | x | S
Aadir el Follow(X) a Follow(Y)
Si X Y Produccin
Para cacular el follow Se usan Los no terminales del lado izquierdo de la produccin
Ejemplo LL(1)
2. Clculo del Follow / Siguiente
Smbolo No Terminal
Follow $ ) ) ;,)
S A B C
S A B C
( A ) CB ; A | x | S
1.Follow (Y) = First (M) excepto .
Si X Y M Produccin
First(B)
;,
Ejemplo LL(1)
Construir la tabla de Anlisis Sintctico
2.
Para cada terminal a del First (), adase A en la posicin M[A , a].
Smbolo No Terminal
S A B C
;
S A B C ( A ) CB ; A | x | S
x
A CB
(
S(A) A CB
S A B C
B;A Cx CS
Ejemplo LL(1)
Construir la tabla de Anlisis Sintctico
3. Si esta en el First (), adase A a M[A , b ] para cada terminal b de Follow(A).
Smbolo No Terminal Smbolo No Terminal
First ;,
Follow
;
S A B C ( A ) CB ; A | x | S
x
A CB
(
S(A) A CB
S A B C
B;A Cx CS
Ejemplo LL(1)
Construir la tabla de Anlisis Sintctico
x
ERROR A CB ERROR Cx
(
S(A) A CB ERROR CS
)
ERROR ERROR B ERROR
$
ERROR ERROR ERROR ERROR
Ejemplo LL(1)
3. Construir la tabla de Anlisis Sintctico
; S A B C
ERROR ERROR B;A ERROR
x
ERROR A CB ERROR Cx
(
S(A) A CB ERROR CS
)
ERROR ERROR B ERROR
$
ERROR ERROR ERROR ERROR
Pila
$S
Entrada (x;(x))$
Se busca el smbolo terminal y el no terminal, remplazndolo por la produccin que le corresponda en la tabla. Colocndola de izquierda a derecha
(
S
S(A)
Pila
$S $)A $)BC $)B x $)B $)A; $)A $)BC $)BS $)B)A( $)B)A $)B)BC $)B)Bx $)B)B $)B) $)B $) $
Entrada
(x;(x))$ x;(x))$ x;(x))$ x;(x))$ ;(x))$ ;(x))$ (x))$ (x))$ (x))$ (x))$ x))$ x))$ x))$ ))$ ))$ )$ )$ $
Accin
S(A) ACB Cx
B;A ACB CS S(A) ACB C x B B
Pila
$S $)A $)BC $)B x $)B $)A; $)A $)BC $)BS $)B)A( $)B)A $)B)BC $)B)Bx $)B)B $)B) $)B $)
Entrada
(x;(x))$ x;(x))$ x;(x))$ x;(x))$ ;(x))$ ;(x))$ (x))$ (x))$ (x))$ (x))$ x))$ x))$ x))$ ))$ ))$ )$ )$
Accin
S(A) ACB Cx
B;A ACB CS S(A) ACB C x B B
Se acepta la cadena si se logra eliminar de la pila y la entrada, todos los smbolos. De lo contrario no se acepta la cadena.
ACEPTADA
RESUMEN
Pasos para el mtodo LL1 1. Escribir adecuadamente la gramtica 2. Calcular el First y el Follow 3. Construir la tabla de Anlisis Sintctico 4. Hacer el anlisis de sintctico por medio de la pila y la tabla de anlisis