Рубрики

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

Рассмотрим следующий сегмент кода.

x = u - t;
y = x * v;
x = y + w;
y = t - z;
y = x * y; 

Минимальное количество общих переменных, необходимое для преобразования вышеуказанного сегмента кода в статическую форму одиночного назначения, равно

Примечание. Этот вопрос был задан как тип числового ответа.
(А) 6
(Б) 8
(С) 9
(D) 10

Ответ: (D)
Объяснение: Статическое одиночное назначение используется для промежуточного кода в проекте компилятора. В форме статического одиночного назначения (SSA) каждое назначение переменной должно быть указано с разными именами. Мы используем индексы, чтобы различать каждое определение переменных.

В данном сегменте кода есть два назначения переменной x

x = u - t;
x = y + w;

и три присваивания переменной y.

y = x * v;
y = t - z;
y = x * y 

Таким образом, мы используем две переменные x1, x2 для определения различных назначений x и y1, y2 и y3 для каждого назначения y. Итак, общее количество переменных равно 10 (x1, x2, y1, y2, y3, t, u, v, w, z).
Форма статического одиночного назначения (SSA) данного сегмента кода:

x1 = u - t;
y1 = x1 * v;
x2 = y1 + w;
y2 = t - z;
y3 = x2 * y2;

Пожалуйста, обратитесь к ссылке ниже для деталей
https://www.cs.cmu.edu/~fp/courses/15411-f08/lectures/09-ssa.pdf
Тест на этот вопрос

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

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

0.00 (0%) 0 votes