Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

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

G = ({A, B, D}, {x, y}, P, A)
P = {A → DxD
B → y | Ax
D → yB | Bx}

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

A gramática livre de contexto está simplificada.

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

G = ({A, B, C}, {x, y}, P, A)
P = {A → CxC
B → y | Ax
C → yB | Bx}

3. Transformação das produções da forma Ar → Asα, onde r ≤ s:

G = ({A, B, C}, {x, y}, P, A)
P = {A → CxC
B → y | CxCx
C → yB | yx | CxCxx}

4. Exclusão das recursões da forma Ar → Arα:

G = ({A, B, C, D}, {x, y}, P, A)
P = {A → CxC
B → y | CxCx
C → yB | yx | yBD | yxD
D → xCxx | xCxxD}