Рубрики

ВОРОТА | GATE-CS-2005 | Вопрос 86

Рассмотрим следующую грамматику выражения. Семантические правила для вычисления выражения изложены рядом с каждым грамматическим произведением.

 E → number 	 E.val = number. val
    | E '+' E 	 E(1).val = E(2).val + E(3).val
    | E '×' E	 E(1).val = E(2).val × E(3).val 

Предположим, что конфликты в части (а) этого вопроса разрешены, и для анализа арифметических выражений генерируется LALR (1) согласно данной грамматике. Рассмотрим выражение 3 × 2 + 1. Какие свойства приоритета и ассоциативности реализует сгенерированный парсер?
(A) Равный приоритет и левая ассоциативность; выражение оценивается до 7
(B) Равный приоритет и правильная ассоциативность; выражение оценивается до 9
(C) Приоритет '×' выше, чем '+', и оба оператора остаются ассоциативными; выражение оценивается до 7
(D) приоритет «+» выше, чем «×», и оба оператора остаются ассоциативными; выражение оценивается до 9

Ответ: (Б)
Объяснение: Ответ — B, поскольку произведения принадлежат одному и тому же нетерминалу, и, поскольку YACC разрешается сдвигом и уменьшением, ассоциативность будет правильной ассоциативной.

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

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

ВОРОТА | GATE-CS-2005 | Вопрос 86

0.00 (0%) 0 votes