Este documento presenta una gramática para secuencias simplificadas de sentencias y analiza su análisis sintáctico. Construye el DFA LR(0), la tabla SLR(1) y muestra el análisis de la cadena "S;S;S" usando un analizador SLR(1). Finalmente, pregunta si la gramática es LR(0) y cómo podría diferir un análisis LR(0) de uno SLR(1).
1. Compiladores 2021B Benjamín Joaquín Martínez 133467
5.3 Considere la gramática siguiente
A A (A) | Ɛ
a. Construya el DFA de elementos LR (0) para esta gramática.
b. Construya la tabla de análisis sintáctica SLR (1)
c. Muestre la pila de análisis sintáctico y las acciones de un analizador SLR (1) para la cadena
de entrada
( ( ) ( ) )
d. ¿Es esta gramática una gramática LR(0) ? Si no es así, describa el conflicto LR (0). Si lo es,
construya la tabla de análisis sintáctico LR (0) y describa cómo puede diferir un análisis
sintáctico de un análisis SLR (1)
A A (A) | Ɛ
A ‘ A
A A (A)
A Ɛ
A ‘ .A
A ‘ A.
A .A (A)
A A .(A)
A A (.A)
A A (A.)
A A (A).
A .
A ‘ .A
A .A (A)
A A .(A)
A A (.A)
A ‘ A.
A .
A A (A).
A A (A.)
A
Ɛ
Ɛ
Ɛ
Ɛ
Ɛ
(
A
A
)
Ɛ
2. Compiladores 2021B Benjamín Joaquín Martínez 133467
( ) $ A
0 R2 D1
1 D2 Aceptar
2 R2 D3
3 D2 D4
4 R1
Dn = Desplazamiento al estado indicado
en el numero subindice
R1 = A A (A)
R2 = A Ɛ
Pila Entrada Acción
$0 ( () () ) $ Reducción A Ɛ
$0A1 ( () () ) $ D2
$0A1(2 () () ) $ Reducción A Ɛ
$0A1(2 A 3 () () ) $ D2
$0A1(2 A 3 ( 2 ) () ) $ Reducción A Ɛ
$0A1(2 A 3 ( 2 A 3 ) () ) $ D4
$0A1(2 A 3 ( 2 A 3 )4 () ) $ Reducción A A (A)
$0A1(2 A 3 () ) $ D2
$0A1(2 A 3 (2 ) ) $ Reducción A Ɛ
$0A1(2 A 3 (2 A 3 ) ) $ D4
$0A1(2 A 3 (2 A 3) 4 ) $ Reducción A A (A)
$0A1(2 A 3 ) $ D4
$0A1(2 A 3 )4 $ Reducción A A (A)
$0A1 $ ACEPTAR
A ‘ .A
A .A (A)
A .
A A (.A)
A .A (A)
A .
A ‘ A.
A A .(A)
A A (A.)
A A .(A)
A A (A).
A
A
(
)
0 1
2
3
4
(
3. Compiladores 2021B Benjamín Joaquín Martínez 133467
5.1 Considere la gramática siguiente
E ( L ) | a
L L , E | E
a. Construya el DFA de elementos LR (1) para esta gramática.
b. Construya la tabla de análisis sintáctico SLR (¡)
c. Muestre la pila de análisis sintáctico y las acciones de analizador SLR (1) para la cadena
de entrada ( (a) , a , (a,a) )
d. ¿ Es esta gramática una gramática LR (0) ? Si no es así, describa el conflicto LR(0). Si lo
es, construya la tabla de análisis sintáctica LR (0) y describa como puede diferir un
análisis sintáctico de un análisis SLR (1).
S ‘ . E
L .L,E
L .E
E .(L)
E .a
L L.,E
L L,E.
S´ E.
L E.
L L,.E
E .(L)
E .a
E (L).
E (.L)
L .L,E
L .E
E .(L)
E .a
E a.
E (L.)
L L.,E
L
E
E
(
a
a
(
L
a
,
,
)
(
0
1
2
3
4
5
6
8
7
6. Compiladores 2021B Benjamín Joaquín Martínez 133467
5.5 Considere la gramática siguiente de secuencias simplificadas de sentencias:
secuencia-sent secuencia-sent ; sent | sent
sent s
a. Construya el DFA de elementos LR (0) para esta gramática.
b. Construya la tabla de análisis sintáctico SLR (1)
c. Muestre la pila de análisis sintáctico y las acciones de un analizador SLR (¡) para la
cadena de entrada S;S; S
d. ¿Es esta gramática una gramática LR(0)? Si no es así, describa el conflicto LR (0). Si
lo es, construya la tabla de análisis sintáctico LR (0) y describa cómo puede diferir
un análisis sintáctico de un análisis SLR (1).
secuencia-sent ´ . secuencia-sent
secuencia-sent . secuencia-sent ; sent
secuencia-sent . sent
sent .S
secuencia-sent ´ secuencia-sent.
secuencia-sent secuencia-sent . ; sent
secuencia-sent sent.
sent S.
secuencia-sent secuencia-
sent ; . sent
sent .S
secuencia-sent secuencia-sent ; sent.
secuencia-sent
sent
S
;
S
sent
0
1
2
3
4
5
7. Compiladores 2021B Benjamín Joaquín Martínez 133467
; s $ secuencia-sent sent
0 D3 D1 D2
1 D4 ACEPTAR
2 R3 R3
3 R4
4 D3 D5
5 R2
R1 secuencia-sent’ secuencia-sent
R2 secuencia-sent secuencia-sent ; sent
R3 secuencia-sent sent
R4 sent S
secuencia-sent
Pila Entrada Acción
$ 0 S;S;S $ D3
$ 0 S3 ;S;S $ R4 sent S
$ 0 sent 0 ;S;S $ D2
$ 0 sent 2 ;S;S $ R3 secuencia-sent sent
$ 0 secuencia-sent 0 ;S;S $ D1
$ 0 secuencia-sent 1 ;S;S $ D4
$ 0 secuencia-sent 1 ;4 S;S $ D3
$ 0 secuencia-sent 1 ;4 S3 ;S $ R4 sent S
$ 0 secuencia-sent 1 ;4 sent 4 ;S $ D5
$ 0 secuencia-sent 1 ;4 sent 5 ;S $ R2 secuencia-sent secuencia-sent ; sent
$ 0 secuencia-sent 0 ;S $ D1
$ 0 secuencia-sent 1 ;S $ D4
$ 0 secuencia-sent 1 ;4 S $ D3
$ 0 secuencia-sent 1 ;4 S3 $ R4 sent S
$ 0 secuencia-sent 1 ;4 sent 4 $ R2 secuencia-sent secuencia-sent ; sent
$ 0 secuencia-sent 0 $ D1
$ 0 secuencia-sent 1 $ Aceptar