Рубрики

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

Наименьшее количество временных переменных, необходимых для создания трехадресного кода в форме статического одиночного присваивания для выражения q + r / 3 + s — t * 5 + u * v / w, составляет
(А) 4
(Б) 8
(С) 7
(D) 9

Ответ: (Б)
Объяснение:

Правильный ответ — 8. Этот вопрос был задан в качестве заполнения пустого вопроса на экзамене.

Трехадресный код — это промежуточный код, сгенерированный компиляторами при оптимизации кода. Каждая команда с тремя адресными кодами может содержать не более трех операндов (констант и переменных) в сочетании с присваиванием и двоичным оператором. В коде с тремя адресами следует отметить, что переменные, используемые на левой стороне (LHS) назначения, не могут повторяться снова на стороне LHS. Статическое одиночное назначение (SSA) — не что иное, как уточнение трехадресного кода.

Итак, в этом вопросе мы имеем

t1 = r / 3;

t2 = t * 5;

t3 = u * v;

t4 = t3 / w;

t5 = q + t1;

t6 = t5 + s;

t7 = t6 - t2; 

t8 = t7 + t4;

Следовательно, нам требуется 8 временных переменных (от t1 до t8) для создания трехадресного кода в форме статического одиночного присваивания.
Тест на этот вопрос

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

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

0.00 (0%) 0 votes