Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Slides

Elimine a recursividade à esquerda, considerando a palavra vazia, das produções da gramática a seguir.

G = ({A, B, C, D}, {w, x, y, z}, P, A)
P = {AAxC | Byw | ACz
BCyz | yBz | BAC
C → xDy | Dw
D → xDx | yDy | Dz | Dw}

Elimine a recursividade à esquerda, desconsiderando a palavra vazia, das produções da gramática a seguir.

G = ({A, B, C, D}, {w, x, y, z}, P, A)
P = {AAxC | Byw | ACz
BCyz | yBz | BAC
C → xDy | Dw
D → xDx | yDy | Dz | Dw}

Elimine a recursividade à esquerda, considerando a palavra vazia, das produções da gramática a seguir.

G = ({E, T, F, P}, {*, +, a, b}, P, E)
P = {EE+T | T
TTF | F
FF* | P
P → a | b}

Elimine a recursividade à esquerda, desconsiderando a palavra vazia, das produções da gramática a seguir.

G = ({E, T, F, P}, {*, +, a, b}, P, E)
P = {EE+T | T
TTF | F
FF* | P
P → a | b}

Apresente a fatoração a esquerda das produções da gramática a seguir.

G = ({A, B, C, D}, {x, y, z}, P, A)
P = {ABCy | Bz | BCD
BCzD | Cz
C → xy | xDB
D → yzA | y | yz}

Apresente a fatoração a esquerda das produções da gramática a seguir.

G = ({A, B, C, D}, {x, y, z}, P, A)
P = {A → zBxDy | zBy | zBxDC
B → xAB | CA | xB
CDyB | Dy | DyBy
D → y | yA}

Apresente os conjuntos FIRST e FOLLOW das variáveis da gramática a seguir.

G = ({S, A, B, C}, {a, b, c, d}, P, S)
P = {SAC | CdB | Ba
A → aA | BC
B → bB | CB | ε
C → cC | ε}

Apresente os conjuntos FIRST e FOLLOW das variáveis da gramática a seguir.

G = ({S, A, B, C, D}, {a, b, c, d}, P, S)
P = {S → aBC | CcD
A → dS | BDb
BCa | bAd
C → c | ε
D → ε | Cd}

Apresente os conjuntos FIRST e FOLLOW das variáveis da gramática a seguir.

G = ({S, A, B, C}, {a, b, c, d}, P, S)
P = {SABC
A → aA | ε
B → bB | CdA
C → cC | ε}

Apresente a Análise Recursiva com Retrocesso da palavra [[a];a] sobre a gramática a seguir.

G = ({S, L}, {;, [, ], a}, P, S)
P = {S → a | [L]
LS;L | S}

Apresente as funções para a realização da Análise Recursiva Preditiva da gramática a seguir.

G = ({S, A, B, C}, {a, b, c, d}, P, S)
P = {SAC | CdB | Ba
A → aA | BC
B → bB | AB | ε
C → cC | ε}

Apresente a Análise Preditiva Tabular da entrada (id + id) * (id + id) sobre a gramática a seguir.

G = ({A, B, C, D, E}, {id, +, *, (, )}, P, A)
P = {ACB
B → +CB | ε
CED
D → *ED | ε
E → (A) | id}
Tabela de análise preditiva da gramática G
 id+*()$
AACB  ACB  
B B → +CB  B → εB → ε
CCED  CED  
D D → εD → *ED D → εD → ε
EE → id  E → (A)  

Apresente a Análise Preditiva Tabular da entrada id & (~id v ~id) sobre a gramática a seguir.

G = ({E, T, F}, {id, &, v, ~, (, )}, P, E)
P = {EEvT | T
TT&F | F
F → (E) | ~F | id}

Apresente a Análise Preditiva Tabular, com recuperação de erros em modo pânico, da entrada (id ~id) v id sobre a gramática a seguir.

G = ({E, T, F}, {id, &, v, ~, (, )}, P, E)
P = {EEvT | T
TT&F | F
F → (E) | ~F | id}

Apresente a Análise Preditiva Tabular, com recuperação local de erros, da entrada (id ~id) v id sobre a gramática a seguir.

G = ({E, T, F}, {id, &, v, ~, (, )}, P, E)
P = {EEvT | T
TT&F | F
F → (E) | ~F | id}

Apresente a Análise Preditiva Tabular da entrada id * (id + id * id) sobre a gramática a seguir.

G = ({A, B, C}, {id, +, *, (, )}, P, A)
P = {AA+B | B
BB*C | C
C → (A) | id}

Apresente a Análise Preditiva Tabular, com recuperação de erros em modo pânico, da entrada id * (id id) * id sobre a gramática a seguir.

G = ({A, B, C}, {id, +, *, (, )}, P, A)
P = {AA+B | B
BB*C | C
C → (A) | id}

Apresente a Análise Preditiva Tabular, com recuperação local de erros, da entrada id * (id id) * id sobre a gramática a seguir.

G = ({A, B, C}, {id, +, *, (, )}, P, A)
P = {AA+B | B
BB*C | C
C → (A) | id}

Apresente a tabela de Análise de Precedência de Operadores, com tratamento de erros, da gramática a seguir.

G = ({A, B, C, D}, {id, +, -, *, /, (, )}, P, A)
P = {AA+B | A-B | B
BB/C | C
CC*D | D
D → (A) | id}

Apresente a Análise de Precedência de Operadores, da entrada x * (x + (x ^ x) * x) sobre a gramática a seguir.

G = ({S, T, P, F}, {+, *, ^, (, ), x}, P, S)
P = {SS+T | T
TT*P | P
PP^F | F
F → (S) | x}

Apresente a Análise de Precedência de Operadores, com tratamento de erros, da entrada x + (x ^ + x)) (x * x x sobre a gramática a seguir.

G = ({S, T, P, F}, {+, *, ^, (, ), x}, P, S)
P = {SS+T | T
TT*P | P
PP^F | F
F → (S) | x}

Apresente a Análise de Precedência de Operadores, da entrada (id & (id v id) v id) sobre a gramática a seguir.

G = ({E, T, F}, {id, &, v, (, )}, P, E)
P = {EEvT | T
TT&F | F
F → (E) | id}

Apresente a Análise de Precedência de Operadores, com tratamento de erros, da entrada id & (v id)) sobre a gramática a seguir.

G = ({E, T, F}, {id, &, v, (, )}, P, E)
P = {EEvT | T
TT&F | F
F → (E) | id}

Elimine a recursividade à esquerda e apresente a fatoração a esquerda das produções da gramática a seguir, de modo que a gramática se torne LL(1).

G = ({A}, {a, b, c, d}, P, A)
P = {AAc | Acd | bc | bac | ε}

Apresente a Análise Preditiva Tabular da entrada 01012 sobre a gramática a seguir.

G = ({S, A, B}, {0, 1, 2}, P, S)
P = {S → 0A | 1B
A → 1B | 2
B → 0A | 2}
FIRST(S) = {0, 1}
FIRST(A) = {1, 2}
FIRST(B) = {0, 2}
FOLLOW(S) = {$}
FOLLOW(A) = {$}
FOLLOW(B) = {$}

Apresente os conjuntos FIRST e FOLLOW das variáveis da gramática a seguir.

G = ({S, A, B, C, D}, {a, b, c, d}, P, S)
P = {SABCD
A → ε | aA
B → ε | Bb
C → c | AB
D → d}

Apresente a Análise Recursiva com Retrocesso da palavra abcd sobre a gramática a seguir.

G = ({S, A, B}, {a, b, c, d}, P, S)
P = {SA
A → a | aB
B → bB | cB | d}

Apresente a Análise Preditiva Tabular da entrada (a+b)*ab* sobre a gramática a seguir.

G = ({A, B, C, D, E}, {a, b, +, *, (, )}, P, A)
P = {AA+B | B
BBC | C
CD* | D
D → (A) | E
E → a | b | ε}

Apresente a Análise de Precedência de Operadores, da entrada ((x + y) ^ (z * y)) / (x - y) sobre a gramática a seguir.

G = ({A, B, C, D, E}, {+, -, *, /, ^, (, ), x, y, z}, P, A)
P = {AA+B | A-B | B
BB*C | B/C | C
CC^D | D
D → (A) | E
E → x | y | z}

Apresente a Análise Preditiva Tabular da entrada a(e;e) sobre a gramática a seguir.

G = ({S, A, B, C, X, Y}, {a, e, (, ), ;}, P, S)
P = {SA)
ACB
B → ;XB | ε
CY(X
X → e
Y → a}

Apresente os conjuntos FIRST e FOLLOW das variáveis da gramática a seguir.

G = ({S, X, Y, Z}, {a, b, c, d, e, f}, P, S)
P = {SXYZ
X → aXb | ε
Y → cYZcX | d
Z → eZYe | f}

Apresente a Análise Preditiva Tabular da entrada abcdac sobre a gramática a seguir.

G = ({S, A, B, C}, {a, b, c, d}, P, S)
P = {SABC
A → aA | ε
B → bB | CdA
C → cC | ε}

Apresente a Análise Preditiva Tabular da entrada + / x y * - + x y z x sobre a gramática a seguir.

G = ({A, B, C}, {+, -, *, /, x, y, z}, P, A)
P = {ABAA | C
B → + | - | * | /
C → x | y | z}

Apresente a Análise Preditiva Tabular, com recuperação de erros em modo pânico, da entrada + - * / x y z z sobre a gramática a seguir.

G = ({A, B, C}, {+, -, *, /, x, y, z}, P, A)
P = {ABAA | C
B → + | - | * | /
C → x | y | z}

Apresente a Análise Preditiva Tabular, com recuperação local de erros, da entrada * x * * - x y z sobre a gramática a seguir.

G = ({A, B, C}, {+, -, *, /, x, y, z}, P, A)
P = {ABAA | C
B → + | - | * | /
C → x | y | z}

Apresente a Análise Preditiva Tabular da entrada x z y x + - * y x / + sobre a gramática a seguir.

G = ({A, B, C}, {+, -, *, /, x, y, z}, P, A)
P = {AAAB | C
B → + | - | * | /
C → x | y | z}

Apresente a Análise Preditiva Tabular, com recuperação de erros em modo pânico, da entrada z z y x / * - + sobre a gramática a seguir.

G = ({A, B, C}, {+, -, *, /, x, y, z}, P, A)
P = {AAAB | C
B → + | - | * | /
C → x | y | z}

Apresente a Análise Preditiva Tabular, com recuperação local de erros, da entrada z y x - * * x * sobre a gramática a seguir.

G = ({A, B, C}, {+, -, *, /, x, y, z}, P, A)
P = {AAAB | C
B → + | - | * | /
C → x | y | z}

Elimine a recursividade à esquerda, considerando a palavra vazia, das produções da gramática a seguir.

G = ({A, B, C, D}, {x, y, z}, P, A)
P = {ABxy | ABz
B → xCy | x
C → y | Cxy | CDz
D → xz | Dzy | xBA}

Elimine a recursividade à esquerda, desconsiderando a palavra vazia, das produções da gramática a seguir.

G = ({A, B, C, D}, {x, y, z}, P, A)
P = {ABxy | ABz
B → xCy | x
C → y | Cxy | CDz
D → xz | Dzy | xBA}

Apresente a fatoração a esquerda das produções da gramática a seguir.

G = ({A, B, C, D}, {x, y, z}, P, A)
P = {A → xBy | xBC
B → yCz | yC
C → zDxC | zCxD | zDxB
D → yCxB | yBzA | yCy | yBz}

Apresente a Análise Recursiva com Retrocesso da palavra 0101 sobre a gramática a seguir.

G = ({S, A}, {0, 1}, P, S)
P = {SAS | A
A → 0 | 1}

Apresente a Análise de Precedência de Operadores, da entrada (a, a, (a, a), a) sobre a gramática a seguir.

G = ({S, L}, {a, ',', (, )}, P, S)
P = {S → (L) | a
LL,S | S}

Apresente a Análise de Precedência de Operadores, com tratamento de erros, da entrada (a; (a; a) a; (a) sobre a gramática a seguir.

G = ({S, L}, {a, ;, (, )}, P, S)
P = {S → (L) | a
LL;S | S}

Elimine a recursividade à esquerda, considerando a palavra vazia, das produções da gramática a seguir.

G = ({S, A, B, C}, {a, b, c,}, P, S)
P = {SABc
ABA | CcB | a
BABb | b
CCA | c}

Elimine a recursividade à esquerda, desconsiderando a palavra vazia, das produções da gramática a seguir.

G = ({S, A, B, C}, {a, b, c,}, P, S)
P = {SABc
ABA | CcB | a
BABb | b
CCA | c}

Apresente a fatoração a esquerda das produções da gramática a seguir.

G = ({W, X, Y, Z}, {a, b, c}, P, W)
P = {WYaX | Ya | YXZ
XZX | Zb | ZXW
Y → aWY | ab
Z → bc | bcX | b}

Apresente a Análise Recursiva com Retrocesso da palavra (a; (a; a); a) sobre a gramática a seguir.

G = ({S, L}, {a, ;, (, )}, P, S)
P = {S → (L) | a
LL;S | S}

Apresente a Análise Preditiva Tabular da entrada (a; (a; a); a) sobre a gramática a seguir.

G = ({S, L}, {a, ;, (, )}, P, S)
P = {S → (L) | a
LL;S | S}

Apresente a Análise Preditiva Tabular, com recuperação de erros em modo pânico, da entrada (a (a; ); a) sobre a gramática a seguir.

G = ({S, L}, {a, ;, (, )}, P, S)
P = {S → (L) | a
LL;S | S}

Apresente a Análise Preditiva Tabular, com recuperação local de erros, da entrada (a (a; ); a) sobre a gramática a seguir.

G = ({S, L}, {a, ;, (, )}, P, S)
P = {S → (L) | a
LL;S | S}

Apresente a Análise de Precedência de Operadores, da entrada (x . (x + x) . x) sobre a gramática a seguir.

G = ({A, B, C}, {x, +, ., (, )}, P, A)
P = {A → (B) | x
BB+C | C
CC.A | A}

Apresente a Análise de Precedência de Operadores, com tratamento de erros, da entrada (x (x + x) . (x) sobre a gramática a seguir.

G = ({A, B, C}, {x, +, ., (, )}, P, A)
P = {A → (B) | x
BB+C | C
CC.A | A}

Elimine a recursividade à esquerda, considerando a palavra vazia, das produções da gramática a seguir.

G = ({S, A, B, C}, {a, b}, P, S)
P = {SSC | AA | a
ACA | AB | a
BAC | b
CCA | AS | b}

Elimine a recursividade à esquerda, desconsiderando a palavra vazia, das produções da gramática a seguir.

G = ({S, A, B, C}, {a, b}, P, S)
P = {SSC | AA | a
ACA | AB | a
BAC | b
CCA | AS | b}

Apresente a fatoração a esquerda das produções da gramática a seguir.

G = ({A, B, C, D}, {x, y, z}, P, A)
P = {A → xAB | xAC | xBC
BCyD | yD | Cy | yDx
C → zCD | Dzx | zC | DzA
D → xA | x | yB}

Apresente a Análise Recursiva com Retrocesso da palavra abbccd sobre a gramática a seguir.

G = ({S, A, B}, {a, b, c, d}, P, S)
P = {SA
A → a | aB
B → bB | cB | d}

Apresente a Análise de Precedência de Operadores, da entrada "x";"x";"x" sobre a gramática a seguir.

G = ({A, B, C}, {x, ;, "}, P, A)
P = {AB | B;A
B → "C"
C → x}

Apresente a Análise de Precedência de Operadores, com tratamento de erros, da entrada "xx";"";"x"x" sobre a gramática a seguir.

G = ({A, B, C}, {x, ;, "}, P, A)
P = {AB | B;A
B → "C"
C → x}

Elimine a recursividade à esquerda, considerando a palavra vazia, das produções da gramática a seguir.

G = ({S, X, K, Y}, {x, y, z}, P, S)
P = {SKY | XK
XXK | x
KYK | XX | x
Y → y | z}

Elimine a recursividade à esquerda, desconsiderando a palavra vazia, das produções da gramática a seguir.

G = ({S, X, K, Y}, {x, y, z}, P, S)
P = {SKY | XK
XXK | x
KYK | XX | x
Y → y | z}

Apresente a fatoração a esquerda das produções da gramática a seguir.

G = ({A, B, C, D, E}, {x, y, z}, P, A)
P = {A → yCD | zCD | xEBD | xBD | xD | xEC | xC
B → xE | x
C → yC | zC | xEB | xB | x
D → y | z
E → yCE | zCE | xEBE | xBE | xE | yC | zC | xEB | xB | x}

Apresente a Análise Recursiva com Retrocesso da palavra aabbccdd sobre a gramática a seguir.

G = ({S, A, B}, {a, b, c, d}, P, S)
P = {S → aS | aA
A → bB | bA
B → cB | cC
C → dC | d}

Apresente a Análise Preditiva Tabular da entrada r1: se a_zero então vá_para r4 senão vá_para r2;r2:faça subtrair_a vá_para r3;r3:faça adicionar_b vá_para r1; sobre a gramática a seguir.

G = ({S, C, D, I, A, N, G}, {:, ;, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, r, faça, subtrair_a, adicionar_b, vá_para, se, a_zero, então, senão}, P, S)
P = { SC | S C
CA : D ; | A : I ;
D → faça subtrair_a vá_para A | faça adicionar_b vá_para A
I → se a_zero então vá_para A senão vá_para A
A → r N
NG | N G
G → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 }

Apresente a Análise Preditiva Tabular, com recuperação de erros em modo pânico, da entrada r1: se a_zero então r4 senão vá_para r2;r2:faça vá_para r3;r3:faça adicionar_b vá_para sobre a gramática a seguir.

G = ({S, C, D, I, A, N, G}, {:, ;, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, r, faça, subtrair_a, adicionar_b, vá_para, se, a_zero, então, senão}, P, S)
P = { SC | S C
CA : D ; | A : I ;
D → faça subtrair_a vá_para A | faça adicionar_b vá_para A
I → se a_zero então vá_para A senão vá_para A
A → r N
NG | N G
G → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 }

Apresente a Análise Preditiva Tabular, com recuperação local de erros, da entrada r1: se a_zero então r4 senão vá_para r2;r2:faça vá_para r3;r3:faça adicionar_b vá_para sobre a gramática a seguir.

G = ({S, C, D, I, A, N, G}, {:, ;, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, r, faça, subtrair_a, adicionar_b, vá_para, se, a_zero, então, senão}, P, S)
P = { SC | S C
CA : D ; | A : I ;
D → faça subtrair_a vá_para A | faça adicionar_b vá_para A
I → se a_zero então vá_para A senão vá_para A
A → r N
NG | N G
G → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 }

Apresente a Análise de Precedência de Operadores, da entrada a AND NOT (b XOR c OR d) XOR e sobre a gramática a seguir.

G = ({A, B, C, D, E, F}, {OR, XOR, AND, NOT, (, ), a, b, c, d, e}, P, A)
P = {AB OR A | B
BC XOR B | C
CD AND C | D
D → NOT E | E
E → ( A ) | F
F → a | b | c | d | e}

Apresente a Análise de Precedência de Operadores, com tratamento de erros, da entrada a NOT (b XOR OR d) e sobre a gramática a seguir.

G = ({A, B, C, D, E, F}, {OR, XOR, AND, NOT, (, ), a, b, c, d, e}, P, A)
P = {AB OR A | B
BC XOR B | C
CD AND C | D
D → NOT E | E
E → ( A ) | F
F → a | b | c | d | e}

Apresente a implementação da Análise Recursiva Preditiva sobre a gramática a seguir.

G = ({S, L}, {a, ;, (, )}, P, S)
P = {S → (L) | a
LL;S | S}

Apresente a implementação da Análise Recursiva Preditiva sobre a gramática a seguir.

G = ({E, T, F}, {x, &, v, ~, (, )}, P, E)
P = {EEvT | T
TT&F | F
F → (E) | ~F | x}

Apresente a Análise Preditiva Tabular, com recuperação de erros em modo pânico, da entrada (a++b)*ab* sobre a gramática a seguir.

G = ({A, B, C, D, E}, {a, b, +, *, (, )}, P, A)
P = {AA+B | B
BBC | C
CD* | D
D → (A) | E
E → a | b | ε}

Apresente a Análise Preditiva Tabular, com recuperação local de erros, da entrada (a++b)*ab* sobre a gramática a seguir.

G = ({A, B, C, D, E}, {a, b, +, *, (, )}, P, A)
P = {AA+B | B
BBC | C
CD* | D
D → (A) | E
E → a | b | ε}

Apresente a Análise de Precedência de Operadores, da entrada w + x * y - z / w sobre a gramática a seguir.

G = ({A, B, C, D, E}, {-, +, /, *, w, x, y, z}, P, A)
P = {AA-B | B
BB+C | C
CC/D | D
DD*E | E
E → w | x | y | z}

Apresente a Análise de Precedência de Operadores, da entrada w * (x + y) ^ z sobre a gramática a seguir.

G = ({A, B, C, D, E}, {-, +, /, *, ^, (, ), w, x, y, z}, P, A)
P = {AA+B | A-B | B
BB*C | B/C | C
CC^D | D
D → (A) | E
E → w | x | y | z}