Relação entre gramáticas simples e regulares

7

Estou lendo "Uma Introdução às Línguas Formais e Autômatos", escrito por Peter Linz e, depois de ler os cinco primeiros capítulos, enfrento o problema com gramáticas simples e regulares (especialmente lineares à direita), muito parecidas entre si.

Que relação existe entre estes? Qual é a diferença? Você pode criar autômatos finitos (não determinísticos) para gramáticas simples (obviamente sem usar uma pilha)?

Soroush
fonte
2
Não conheço gramáticas simples, você consegue se lembrar da definição ou fazer uma referência?
Jmad

Respostas:

13

Uma gramática simples (gramática s) é aquela em que toda produção é da forma UMAumaB1 1B2...Bn Onde uma é um terminal e tudo BEu,Eu0 0 são não terminais e existe apenas uma produção com qualquer par UMA,uma.

Claramente, todo idioma s (produzido por uma gramática s) é inequívoco e facilmente analisado, pois cada símbolo terminal da esquerda para a direita e não terminal determina exclusivamente a produção a ser aplicada. Por exemplo, se a sequência forumabc, então o par S,umadetermina exclusivamente a primeira produção da análise e assim por diante para cada terminal e o não terminal à sua direita imediata. Assim, um idioma definido por uma gramática s pode ser analisado um símbolo de cada vez, sem lookahead, resultando em tempo de análise linear; de fato, tempo|x|.

As gramáticas S não são muito importantes por si só, uma vez que a maioria das línguas reais excede seu poder. Mas eles são um trampolim para outras gramáticas analisadas em tempo linear, comoeueu(k) gramáticas em que há um limite kno lookahead necessário para determinar uma produção durante a análise. Com efeito, uma gramática s é umeueu(0 0) gramática.

A conexão com os autômatos é que um s-langauge pode ser analisado com um autômato de empilhamento com um único estado, que apenas olha o símbolo de entrada e o símbolo de pilha superior para determinar uma sequência de símbolos de pilha a serem empurrados. Mas desde a gramática s ...

SumaSB|#Buma

... gera não regular {umaEu#umaEu:Eu0 0}Em geral, as linguagens s não podem ser reconhecidas por autômatos de estados finitos, determinísticos ou não determinísticos.

David Lewis
fonte
2
Outra maneira de compará-los é pelos problemas de decisão. Para gramáticas simples, o problema de equivalência (se duas gramáticas geram o mesmo idioma) é decidível, enquanto o problema de inclusão (se uma gramática gera um subconjunto do idioma gerado pela outra gramática) não é. Para gramáticas regulares, ambos os problemas são decidíveis.
reinierpost