Estou confuso sobre o exemplo dado no artigo da Wikipedia sobre gramática sensível ao contexto:
https://en.wikipedia.org/wiki/Context-sensitive_grammar
Disclamer : Eu já mudei a seção discutida no artigo da wikipedia, portanto, o estado atual do artigo será diferente do que estou discutindo nesta pergunta. A versão original está aqui: https://en.wikipedia.org/w/index.php?title=Context-sensitive_grammar&oldid=747616366
A seguinte gramática, com o símbolo inicial S, gera o idioma canônico não isento de contexto {anbncn: n ≥ 1}:
- S → abc
- S → a SB c
- c B → WB
- WB → WX
- WX → BX
- BX → B c
- b B → bb
Eles não afirmam diretamente que essa gramática é sensível ao contexto , mas a próxima frase implica que eles a consideram sensível ao contexto :
As regras 3 a 6 permitem trocar sucessivamente cada cB por Bc (quatro regras são necessárias para isso, uma vez que uma regra cB → Bc não se encaixaria no esquema αAβ → αγβ)
Então eles apelam para a forma canônica de regras gramaticais sensíveis ao contexto: αAβ → αγβ, implicando que toda a gramática é sensível ao contexto.
O que me deixa confuso é a regra nº 3 , que parece não se encaixar no esquema αAβ → αγβ. Considero o terminal aqui como parte de , variável como no esquema, está vazio. Isso implica que não pode produzir , pois deve ser salvo no mesmo local ( ).c B → c …B A β c B W B c
Perdi alguma coisa ou essa gramática foi realmente colocada aqui por engano (como não é realmente sensível ao contexto)?