Beruflich Dokumente
Kultur Dokumente
X a | BA | c |
A aX | bX |cB
B aB | bX
cadeia: baccbcaa
Pilha
Cadeia
Regra
baccbcaa$
empilha
$b
accbcaa$
empilha
$ba
ccbcaa$
empilha
$bac
cbcaa$
reduz
$baX
cbcaa$
reduz
$bA
cbcaa$
empilha
$bAc
bcaa$
reduz
$bAX
bcaa$
empilha
$bAXb
caa$
empilha
$bAXbc
aa$
reduz
$bAXbX
aa$
reduz
Erro de ambiguidade
Cadeia
Regra
aaa*+a $
empilha
$a
aa*+a$
reduz
$S
aa*+a$
empilha
$Sa
a*+a$
reduz
$SS
a*+a$
empilha
$SSa
*+a$
reduz
$SSS
*+a$
empilha
$SSS*
+a$
reduz
$SS
+a$
empilha
$SS+
a$
reduz
$S
a$
empilha
$Sa
reduz
$SS
rejeita
2.2
S 0S1 | 01
cadeia: 0001110
Pilha
Cadeia
Regra
0001110$
empilha
$0
001110$
empilha
$00
01110$
empilha
$000
1110$
empilha
$0001
110$
reduz
$00S
110$
empilha
$00S1
10$
reduz
$0S
10$
empilha
$0S1
0$
reduz
$S
0$
empilha
$S0
rejeita
3)
a)
primeiros
ultimos
+,*,^,(,x
+,*,^,),x
*,^,(,x
*,^,),x
^,(,x
^,),x
(,x
),x
id
>
<
<
<
>
<
>
>
>
<
<
>
<
>
>
>
>
<
>
<
>
<
<
<
<
>
>
>
>
>
id
>
>
>
>
>
<
<
<
<
'='
<
<
Cadeia
Regra
x*(x+(x^x)
*x)$
$<
x*(x+(x^x)
*x)$
$<id
*(x+(x^x)*
x)$
$<id>
*( x + ( x ^ x ) * x
)$
$<F>*
(x+(x^x)*x)
$
$<F>*
(x + ( x ^ x ) * x )
$
$<F>*(
x+(x^x)*x)
$
$<F>*(<
x+(x^x)*x)
$
$<F>*(<id
+(x^x)*x)$
$<F>*(<id>
+(x^x)*x)$
reduz
$<F>*(<F>
+(x^x)*x)$
empilha
$<F>*(<F>+
(x^x)*x)$
$<F>*(<F>+
(x^x)*x)$
$<F>*(<F>+<(
x^x)*x)$
$<F>*(<F>+<(<
x^x)*x)$
$<F>*(<F>+(<id
^x)*x)$
$<F>*(<F>+(<id>
^x)*x)$
empilha
reduz
empilha
empilha
empilha
empilha
reduz
$<F>*(<F>+(<F>
^x)*x)$
empilha
$<F>*(<F>+(<F>^
x)*x)$
$<F>*(<F>+(<F>^<
x)*x)$
$<F>*(<F>+(<F>^<id
)*x)$
$<F>*(<F>+(<F>^<id>
)*x)$
reduz
$<F>*(<F>+(<F>^<F>
)*x)$
reduz
$<F>*(<F>+(<P>
)*x)$
empilha
$<F>*(<F>+(<P>)
*x)$
reduz
$<F>*(<F>+<F>
*x)$
reduz
$<F>*(<S>
*x)$
empiha
$<F>*(<S>*
x)$
$<F>*(<S>*<
x)$
$<F>*(<S>*<id
)$
$<F>*(<S>*<id>
)$
$<F>*(<T>
)$
$<F>*(<T>=
)$
$<F>*(<T>=
)$
$<F>*(<T>=)
$<F>*<F>
reduz
$<F>
reduz
$<P>
reduz
$<T>
reduz
$<S>
aceita
empilha
empilha
reduz
empilha
b) x + ( x ^ + x ) ) ( x * x x
Pilha
$<
Cadeia
Regra
x + ( x ^ + x ) ) ( x * x x $ empilha
$<x>
+(x^+x))(x*xx$
reduz
$<
+(x^+x))(x*xx$
empilha
$<+<
(x^+x))(x*xx$
empilha
$<+<(<
x^+x))(x*xx$
empilha
$<+<(< x >
^+x))(x*xx$
reduz
$<+<(<
^+x))(x*xx$
empilha
$<+<(<^>
+x))(x*xx$
reduz
$<+<(<
+x))(x*xx$
empilha
$<+<(<+<
x))(x*xx$
empilha
$<+<(<+<x>
))(x*xx$
reduz
$<+<(<+>
))(x*xx$
reduz
$<+<(
))(x*xx$
empilha
$<+<()>
)(x*xx$
reduz
$<+>
)(x*xx$
reduz
)(x*xx$
Erro x3
4)
Pilha
Cadeia
Regra
$<
(id&(idvid)vid)$
empilha
$<(<
id&(idvid)vid)$
empilha
$<(<id>
&(idvid)vid)$
reduz
$<(<&<
(idvid)vid$
empilha
$<(<&<(<
idvid)vid$
empilha
$<(<&<(<id>
vid)vid$
reduz
$<(<&<(<
vid)vid$
empilha
$<(<&<(<v<
id)vid$
empilha
$<(<&<(<v<id>
)vid$
reduz
$<(<&<(<v>
)vid$
reduz
$<(<&<(
)vid$
empilha
$<(<&<()>
vid$
reduz
$<(<&>
vid$
reduz
$<(<
vid$
empilha
$<(<v<
id$
empilha
$<(<v<id>
reduz
$<(<v>
reduz
$<(
Erro 1
5)
entrada : (id & (v id))
Pilha
Cadeia
Regra
$<
empilha
$<(<
id & (v id)) $
empilha
$<(<id>
&(v id))$
reduz
$<(<
&(v id))$
empilha
$<(<&<
(vid))$
empilha
$<(<&<(<
vid))$
empilha
$<(<&<(<v<
id))$
empilha
$<(<&<(<v<id>
))$
reduz
$<(<&<(<v>
))$
reduz
$<(<&<(
))$
Erro 4
6)
B' B(0)
BP&B (1)
BP (2)
Px (3)
Py (4)
I0 = { B'->.B, B.P&B, B .P, P .x, P .y }
T(I0, B) = { B' B. } = I1
T(I0, P) = { B P.&B, B P. } = I2
T(I0, x) = { P x.} = I3
T(I0,y) = { P y.} = I4
T(I2,&) = { B P&.B, B .P&B, B .P, P .x, P .y} = I5
T(I5,B) = { B P&B.} = I6
T(I5,P) = { B P.&B, B P.} = I2
T(i5,x) = { P x.} = I3
T(i5,y) = { P y.} = I4
Follow(B) = {$}
Follow(P) = {&,$}
Estados
Aes
&
Transies
s3
s4
aceita
s5
r2
r3
r3
r4
r4
s3
s4
r1
b)
I0
x
I1
I2
&
$
I4
I5
$, &
I3
I6
c)
a) x&y&x
Pilha
$0
Cadeia
x&y&x $
Regra
Empilha x
$0x3
&y&x $
Reduz r3
$0P2
&y&x $
empilha
$0P2&5
y&x $
empilha
$0P2&5y4
&x $
&x $
x$
Reduz r4
Reduz r2
Reduz r1
Reduz r1
aceita
b) x&y&
Pilha
Cadeia
Regra
$0
x&y& $
Empilha x
$0x3
&y& $
Reduz r3
$0P2
&y& $
Empilha
$0P2&5
y& $
empilha
$0P2&5y4
&$
Reduz r4
$0P2&5P2
&$
empilha
$0P2&5P2&5
empilha
$0P2&5P2&5
rejeita
Regras Gramaticais
L.valor
E.valor
E.valor
E1.valor + T.valor
E.valor
T.valor
T.valor
T1.valor * F.valor
T.valor
F.valor
F.valor
E.valor
F.valor
Digito.valorLexico
12)
a) (4 + 7 + 1) * 2
13)
a) x := (y + z) * (k 10)
t1 := k 10;
t2 := y + z
t3 := t1*t2
x := t3
b) x := k - y / 3
t1 := y/3
t2 := k -t1
x := t2
c)x := 2 * 5 - k / 3
t1 := 2*5
t2 := k/3
t3 := t1 t2
d) x := 4 * a * b + h / 2
t1 := 4*a
t2 := t1*b
t3 := h/2
t4 := t2 + t3
x := t4
14)
a) x := (y + z) * (k 10)
int t1
DS.W
Int t2
DS.W
Int t3
DS.W
Int x
DS.W
Int y
DS.W
Int z
DS.W
Int k
DS.W
MOVE.W
k,d1
SUB.W
#10, d1
MOVE.W
d1, t1
MOVE.W
Y,d1
ADD.W
Z,d1
MOVE.W
D1, t2
MOVE.W
T1, d1
MULS.W
T2,d1
MOVE.W
D1,t3
MOVE.W
T3, d1
MOVW.W
D1, x
15) Operaes que se repetem sem que seus argumentos sejam alterados, podem
ser realizadas uma nica vez .
No otimizado
otimizado
T1 := a + b
T1 := a + b
t2 := t1*c
T2 := t1*c
t3 := a + b
T3 := t1*d
T4 := t3 + d
asm
int a,b,valor;
a = 10;
b = 20;
valor = a * ( b + 20)
3 end
a = 10;
b = 20;
t1 = b + 20;
t1 = a * t1;
valor = t1;
VTMP
a
b
valor
DS.W
DS.W
DS.W
DS.W
1
1
1
1
MOVE.W
MOVE.W
#10, d1
d1, a
MOVE.W
MOVE.W
#20, d1
d1, b
MOVE.W
MOVE.W
#20, d1
d1, a