Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

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}

 

1. Eliminação da recursividade à esquerda:

1.1. Simplificação da gramática livre de contexto:

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

1.2. Renomeação das variáveis em uma ordem crescente qualquer:

G = ({A, B}, {a, ;, (, )}, P, A)
P = {A → (B) | a
BB;A | (B) | a}

1.3. Transformação das produções da forma ArAsα, onde rs:

G = ({A, B}, {a, ;, (, )}, P, A)
P = {A → (B) | a
BB;A | (B) | a}

1.4. Exclusão das recursões da forma ArArα:

G = ({A, B, C}, {a, ;, (, )}, P, A)
P = {A → (B) | a
B → (B)C | aC | (B) | a
C → ;AC | ;A}

2. Fatoração a esquerda da gramática livre de contexto:

G = ({A, B, C, D}, {a, ;, (, )}, P, A)
P = {A → (B) | a
B → (B)D | aD
C → ;AD
DC | ε}

3. Análise Recursiva com Retrocesso da palavra (a; (a; a); a):

Análise Recursiva com Retrocesso da palavra (a; (a; a); a)Análise Recursiva com Retrocesso da palavra (a; (a; a); a)
Análise Recursiva com Retrocesso da palavra (a; (a; a); a)