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 = {S → ABc
A → BA | CcB | a
B → ABb | b
C → CA | c}
1. Simplificação da gramática livre de contexto:
G = ({S, A, B, C}, {a, b, c,}, P, S)
P = {S → ABc
A → BA | CcB | a
B → ABb | b
C → CA | c}
2. Renomeação das variáveis em uma ordem crescente qualquer:
G = ({A, B, C, D}, {a, b, c,}, P, A)
P = {A → BCc
B → CB | DcC | a
C → BCb | b
D → DB | c}
3. Transformação das produções da forma Ar → Asα, onde r ≤ s:
G = ({A, B, C, D}, {a, b, c,}, P, A)
P = {A → BCc
B → CB | DcC | a
C → CBCb | DcCCb | aCb | b
D → DB | c}
4. Exclusão das recursões da forma Ar → Arα:
G = ({A, B, C, C₀, D, D₀}, {a, b, c,}, P, A)
P = {A → BCc
B → CB | DcC | a
C → DcCCbC₀ | aCbC₀ | bC₀
C₀ → BCbC₀ | ε
D → cD₀
D₀ → BD₀ | ε}