2016-04-15 10 views
2

Я действительно пытаются unterstand отношения между:Взаимосвязь между 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

См. Этот ответ на сайте CompSci SE (на котором должен был быть задан этот вопрос, за исключением того, что он был бы помечен как дубликат): http://cs.stackexchange.com/a/48/4416 – rici

+1

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что он уже ответил на http://cs.stackexchange.com/ – rici

+0

Я голосую, чтобы закрыть этот вопрос как вне темы, потому что он уже ответил на http://cs.stackexchange.com и потому, что он запрашивает хорошо документированный результат в теории парсинга. – EJP

ответ

2

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

  • Каждый 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) грамматики в основном бесполезны, see this question for details why).

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

+0

sir Спасибо за ваш ответ. Очистить мое сомнение: Является ли LR (0) всегда LALR (1)? – laura

+1

@ laura Yep, что следует из первых двух включений. – templatetypedef

+0

sir последнее сомнение, просто хочу подтвердить, что: - если есть парсер LALR (1) для грамматики G может иметь конфликты сдвига (SR), если и только если -: параметр a) Парсер LR (1) для G имеет конфликты SR b) Парсер LR (0) для G имеет конфликты SR .. так что ответ на это должен быть как? извините, если я нарушил какой-либо протокол, я имею в виду, я знаю, что мне нужно создать новую тему для этого вопроса .., но вопрос косвенно связан, поэтому я спросил здесь. – laura