Uma gramática simples (gramática s) é aquela em que toda produção é da forma A → aB1 1B2. . .Bn Onde uma é um terminal e tudo BEu, i ≥ 0 são não terminais e existe apenas uma produção com qualquer par ⟨ Um , 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 fora b c, então o par ⟨ S, Um ⟩determina 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, comoL L ( 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 é umL L ( 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 ...
S→ a SB | #B → a
... gera não regular {umaEu#umaEu: i ≥ 0 }Em geral, as linguagens s não podem ser reconhecidas por autômatos de estados finitos, determinísticos ou não determinísticos.