Рубрики

ВОРОТА | GATE-CS-2016 (набор 1) | Вопрос 56

Рассмотрим следующую схему направленной трансляции синтаксиса (SDTS) с нетерминалами {S, A} и терминалами {a, b}}.

Используя вышеупомянутый SDTS, вывод, напечатанный анализатором снизу вверх, для ввода aab
(А) 1 3 2
(Б) 2 2 3
(С) 2 3 1
(D) Синтаксическая ошибка

Ответ: (с)
Объяснение: Анализатор снизу вверх строит дерево анализа снизу вверх, т.е. от заданной строки до начального символа. Данная строка — aab, а начальный символ — S.

поэтому процесс начинается с aab и достигает S.

=> aab (заданная строка)
=> aSb (после уменьшения на S-> a и, следовательно, вывести 2)
=> aA (после уменьшения на A-> Sb и, следовательно, печати 3)
=> S (после уменьшения на S-> aA и, следовательно, вывести 1)

Когда мы достигаем начального символа из строки, строка принадлежит языку грамматики.

Другой способ сделать то же самое: — анализатор снизу вверх выполняет разбор RMD в обратном порядке.

RMD выглядит следующим образом:

=> S
=> aA (следовательно, печать 1)
=> aSb (следовательно, печать 3)
=> aab (следовательно, печать 2)

Если мы возьмем в обратном порядке, он напечатает: 231

Тест на этот вопрос

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

ВОРОТА | GATE-CS-2016 (набор 1) | Вопрос 56

0.00 (0%) 0 votes