Связь между LR(0), LL(0), LALR(1) и т. Д.?

Я действительно изо всех сил пытаюсь понять отношения между:

  • LR (0)
  • LL(0)
  • LALR (1)
  • SLR (1)
  • LR (1)
  • LL (1)

Я почти уверен, что LALR (1) и SLR (1) являются подмножествами LR (1), но я заблудился о других. Они все эксклюзивные? Является ли LL(0) подмножеством LL(1)?

Спасибо

1 ответ

Решение

Правила содержания следующие:

  • Каждая грамматика LR(0) также является SLR(1), но не все грамматики SLR (1) являются LR(0).
  • Каждая грамматика SLR (1) также является LALR(1), но не все грамматики LALR (1) являются SLR(1).
  • Каждая грамматика LALR (1) также является LR (1), но не все грамматики LR (1) являются LALR(1).
  • Каждая грамматика LL (1) также является LR (1), но не все грамматики LR (1) являются LL (1).
  • Каждая грамматика LL(0) также является LR(0), SLR(1), LALR(1), LR(1) и LL(1). (LL(0) грамматики в основном бесполезны; подробности см. В этом вопросе).

Также бывает, что каждый язык, имеющий грамматику LR (1), также имеет грамматику LR(0), при условии, что вы заканчиваете грамматику, хотя грамматика не гарантированно будет красивой.

Другие вопросы по тегам