Какова фактическая разница между анализаторами LR, SLR и LALR? Я знаю, что SLR и LALR являются типами парсеров LR, но какова фактическая разница в их таблицах синтаксического анализа?
И как показать, является ли грамматика LR, SLR или LALR? Для грамматики LL нам просто нужно показать, что любая ячейка таблицы синтаксического анализа не должна содержать нескольких правил производства. Любые подобные правила для LALR, SLR и LR?
Например, как мы можем показать, что грамматика
S --> Aa | bAc | dc | bda
A --> d
- LALR (1), но не SLR (1)?
EDIT (ybungalobill). Я не получил удовлетворительного ответа о том, какая разница между LALR и LR. Таким образом, таблицы LALR имеют меньший размер, но могут распознавать только подмножество LR-грамматик. Может ли кто-нибудь более подробно рассказать о различии между LALR и LR, пожалуйста? LALR (1) и LR (1) будут достаточными для ответа. Оба из них используют 1 токен в обратном направлении, и оба они управляются таблицей! Как они отличаются?