Qual é a diferença entre os analisadores LR, SLR e LALR?

Qual é a diferença real entre os analisadores LR, SLR e LALR? Sei que SLR e LALR são tipos de analisadores de LR, mas qual é a diferença real no que diz respeito às tabelas de análise?

E como mostrar se uma gramática é LR, SLR ou LALR? Para uma gramática LL, basta mostrar que qualquer célula da tabela de análise não deve conter várias regras de produção. Alguma regra semelhante para LALR, SLR e LR?

Por exemplo, como podemos mostrar que a gramática

S --> Aa | bAc | dc | bda
A --> d

é LALR (1), mas não SLR (1)?

EDIT (ybungalobill): Não recebi uma resposta satisfatória para a diferença entre LALR e LR. Portanto, as tabelas do LALR são menores em tamanho, mas podem reconhecer apenas um subconjunto de gramáticas LR. Alguém pode elaborar mais sobre a diferença entre LALR e LR, por favor? LALR (1) e LR (1) serão suficientes para uma resposta. Ambos usam 1 token com antecedência eambos são movidos a mesa! Como eles são diferentes?

questionAnswers(7)

yourAnswerToTheQuestion