gramáticas L L ( k ) e L R ( k ) são boas não apenas porque podem ser analisadas com eficiência, mas também porque podemos verificar se uma gramática é L L ( k ) ou L R ( k )LL(k)LR(k)LL(k)LR(k)e porque podemos gerar tabelas para eles (as tabelas de análise são usadas para analisar as seqüências de entrada). Observe que, para essas duas classes, ter a tabela de análise imediatamente permite verificar se as gramáticas estão nas classes, porque é assim se e somente se as tabelas não contiverem erros. Além disso, sim, existem classes de gramáticas que podemos analisar com eficiência se tivermos uma tabela de análise, mas para a qual não podemos gerar a tabela se ela existir.
Qualquer livro sobre métodos de análise ensinará como gerar as tabelas para os métodos e, possivelmente, também para L R ( 1 ) (embora S L R ( 1 ) seja mais comum). Livros didáticos como Parsing Theory, de Sippu e Soisalon-Soininen, também tratam a geração de tabelas de análise para gramáticas L L ( k ) e L R ( k ) .LL(1)LR(1)SLR(1)LL(k)LR(k)
Infelizmente, para gramáticas realmente estranhas, as tabelas de análise para e L R ( k ) (embora não para L L ( 1 ) ) podem explodir e se tornar enormes; eles farão isso mesmo para gramáticas normais se k for alto o suficiente. Existem testes disponíveis que podem verificar se uma gramática é L L ( k ) ou L R ( k )LL(k)LR(k)LL(1)kLL(k)LR(k)ou não executado no tempo polinomial (a geração da tabela é exponencial). Para detalhes, leia o livro acima. Observe que, em muitos casos, a tabela é de tamanho razoável, portanto, o teste não é necessário.
kkLL(k)LR(k)LR(k)kLL(c)ck(veja aqui para detalhes).