Propriedades das livres de contexto
Simplificação de CFG, forma normal de Chomsky, CYK, fecho e lema da repetição.
Simplificação de CFG
- Produções vazias: calcula as variáveis anuláveis, isto é, as que derivam . Por cada produção, cria todas as combinações que omitem ocorrências anuláveis. Depois retira as produções vazias e preserva apenas se a linguagem original a continha, usando um início novo que não aparece em nenhum lado direito.
- Produções unitárias: calcula todos os pares alcançados só com regras unitárias . Depois copia para todas as produções não unitárias de cada alcançado e retira as regras unitárias.
- Símbolos inúteis: retira primeiro as variáveis não geradoras e as regras que as usam; depois retira as variáveis inacessíveis a partir do início na gramática que ficou.
Em com só anulável, conserva a produção original e acrescenta , e . Apagar a regra vazia sem acrescentar estas combinações perderia palavras. A ordem segura é: produções vazias, unitárias, variáveis não geradoras e depois inacessíveis.
Forma normal de Chomsky
Na forma normal de Chomsky, cada produção tem a forma ou . A extensão admite quando pertence à linguagem, desde que o início não apareça em nenhum lado direito.
- Simplifica a gramática e usa um início novo quando pertence à linguagem.
- Substitui cada terminal em corpos com comprimento pelo menos dois por uma variável nova, por exemplo ; conserva as regras , que já estão na forma certa.
- Divide os corpos compridos: passa a e , com novo.
- A CNF final não conserva regras unitárias como .
CYK
Usa uma CFG em CNF e uma palavra não vazia . A célula contém as variáveis que geram a subpalavra .
- Na diagonal, .
- Preenche por comprimento crescente e tenta todos os cortes entre e : quando com e , junta a .
- Aceita a palavra quando o símbolo inicial pertence a .
O preenchimento custa tempo e espaço para gramática fixa. A palavra vazia trata-se à parte, sem tabela. Cada corte respeita o intervalo: numa produção aplicada a com corte , a variável tem de gerar o prefixo esquerdo e o sufixo direito .
Conversão e tabela CYK completas.
Fecho e decisão
- As CFL são fechadas para união, concatenação, estrela, reverso e interseção com uma linguagem regular. O produto entre PDA e DFA conserva a pilha do PDA; uma transição vazia do PDA não altera o estado do DFA.
- As CFL não são fechadas para interseção geral, complemento ou diferença. Por exemplo, , que não é CFL.
- A pertença por CYK e o vazio pelo teste de símbolo inicial gerador são decidíveis. Não há decisor geral para equivalência, universalidade ou ambiguidade de CFG.
Lema da repetição para CFL
Se é livre de contexto, existe um inteiro tal que toda a palavra com admite uma decomposição com , e para todo o inteiro . As partes e bombeiam com o mesmo expoente e a zona curta pode estar em qualquer posição. Esta condição é necessária, mas não suficiente.
- Com e , a zona nunca cobre um e um ao mesmo tempo, pois teria de atravessar todo o bloco de . Retirar e com deixa um dos extremos intacto e quebra a igualdade das três contagens.
- Um corte feliz não refuta o lema. Em , a palavra admite um corte que bombeia sempre dentro de , por isso não serve como testemunha. A testemunha que funciona é : a zona curta, com no máximo símbolos, nunca toca nos dois blocos extremos de ao mesmo tempo. Com o mesmo expoente em todos os cortes válidos, a palavra obtida sai sempre de . A prova completa, com a tabela que cobre todos os cortes, está na lição.