Ybadoo - Soluções em Software Livre
Turmas
2º Semestre de 2025

As formas normais estabelecem restrições rígidas na definição das produções, sem reduzir o poder de geração das Gramáticas Livres de Contexto, sendo usadas principalmente no desenvolvimento de algoritmos (com destaque para reconhecedores de linguagens) e na prova de teoremas. Por exemplo, diz-se que uma Gramática Livre de Contexto G = (V, Σ, P, S) obedece à Forma Normal de Greibach se todas as suas produções p ∈ P forem da forma:

A → σα, σ ∈ Σ, α ∈ N*

Conforme exposto, apresente a Forma Normal de Greibach da gramática livre de contexto a seguir.

G = ({S, W, A}, {x, y, z}, P, S)
P = {SWA | z
WWAy | y
ASxW}

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

A gramática livre do contexto já está simplificada.

G = ({S, W, A}, {x, y, z}, P, S)
P = {SWA | z
WWAy | y
ASxW}

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

G = ({A, B, C}, {x, y, z}, P, A)
P = {ABC | z
BBCy | y
CAxB}

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

G = ({A, B, B0, C}, {x, y, z}, P, A)
P = {ABC | z
B → yB0 | y
B0CyB0 | Cy
CAxB}

3. Transformação de produções para a forma ArAsα, onde r ≤ s

G = ({A, B, B0, C}, {x, y, z}, P, A)
P = {ABC | z
B → yB0 | y
B0CyB0 | Cy
C → yB0CxB | yCxB | zxB}

5. Um terminal no início do lado direito de cada produção

G = ({A, B, B0, C}, {x, y, z}, P, A)
P = {A → yB0C | yC | z
B → yB0 | y
B0 → yB0CxByB0 | yCxByB0 | zxByB0 | yB0CxBy | yCxBy | zxBy
C → yB0CxB | yCxB | zxB}

6. Produções da forma A → aα onde α é composto por variáveis

G = ({A, B, B0, C, X0, X1, X2, X3, X4, X5, X6, X7, X8, Y0, Y1, Y2, Y3, Y4, Y5}, {x, y, z}, P, A)
P = {A → yB0C | yC | z
B → yB0 | y
B0 → yB0CX0BY0B0 | yCX1BY1B0 | zX2BY2B0 | yB0CX3BY3 | yCX4BY4 | zX5BY5
C → yB0CX6B | yCX7B | zX8B
X0 → x
X1 → x
X2 → x
X3 → x
X4 → x
X5 → x
X6 → x
X7 → x
X8 → x
Y0 → y
Y1 → y
Y2 → y
Y3 → y
Y4 → y
Y5 → y}