As pessoas costumam dizer que os analisadores LR (k) são mais poderosos que os analisadores LL (k) . Essas declarações são vagas na maioria das vezes; em particular, devemos comparar as classes para um fixo ou a união sobre todos os k ? Então, como está realmente a situação? Em particular, estou interessado em saber como LL (*) se encaixa.
Até onde eu sei, os respectivos conjuntos de gramáticas que os analisadores LL e LR aceitam são ortogonais; portanto, vamos falar sobre os idiomas gerados pelos respectivos conjuntos de gramáticas. Deixe indicam a classe de linguagens geradas por gramáticas que podem ser analisados por um G R ( K ) do analisador, e semelhante para outras classes.
Estou interessado nas seguintes relações:
Alguns destes são provavelmente fáceis; meu objetivo é coletar uma comparação "completa". Referências são apreciadas.
Respostas:
Nível gramatical
Para LL
Para LR
Estes são todos exercícios simples.
LL versus LR
Nível de idioma
Para LL
Para LR
Algumas delas foram comprovadas por Knuth em seu artigo Na tradução de idiomas da esquerda para a direita, na qual ele introduziu o LR (k), o restante é comprovado em Transformando gramáticas do LR (k) em LR (1), SLR (1), e (1,1) gramáticas vinculadas ao contexto direito de Mickunas et al.
LL versus LR
fonte