Рубрики

ВОРОТА | GATE-CS-2001 | Вопрос 18

Какое из следующих утверждений является ложным?
(A) Однозначная грамматика имеет такое же самое левое и самое правое дифференцирование
(B) парсер LL (1) является парсером сверху вниз
(C) LALR является более мощным, чем SLR
(D) Неоднозначная грамматика никогда не может быть LR (k) для любого k

Ответ: (А)
Объяснение: 1. Грамматика неоднозначна, если существует строка s такая, что грамматика имеет более одного крайнего левого дифференцирования для s. Мы могли бы также предложить более одного правого вывода для строки, чтобы доказать вышеуказанное предложение, но не как правого, так и самого левого. Однозначная грамматика может иметь разные крайние справа и слева.

2. LL-парсер является нисходящим по своей природе. Самый левый вывод, интуитивно, расширяющийся или нисходящий в моде, отсюда и такое соглашение. С другой стороны, крайний правый вывод выглядит как компрессионная или восходящая вещь.

3. LALR является более мощным, чем SLR, даже когда оба имеют одинаковые состояния LR (0), из-за того, что SLR проверяет предвидение, просматривая FIRST и FOLLOW из грамматики после построения своей таблицы синтаксического анализа и с другой стороны, LALR вычисляет прогнозирование из состояний LR (0) при построении таблицы разбора, что является лучшим методом.

4. Неоднозначная грамматика никогда не может быть LR (k) для любого k, потому что алгоритм LR (k) не предназначен для обработки неоднозначных грамматик. Это может привести к неразрешимости проблемы, если использовать ее для неоднозначной грамматики, независимо от того, насколько велика константа k.

Ссылка: http://stackoverflow.com/questions/2676144/what-is-the-difference-between-lr-slr-and-lalr-parsers/16575211#16575211
Смотрите вопрос 3 из http://espressocode.top/compilers-set-1/

Это решение предоставлено Vineet Purswani.
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2001 | Вопрос 18

0.00 (0%) 0 votes