Рубрики

ВОРОТА | GATE-CS-2014- (Set-1) | Вопрос 65

Что из следующего является ЛОЖНЫМ?
(A) Базовый блок — это последовательность инструкций, в которой элемент управления входит в последовательность в начале и выходит в конце.
(B) Доступный анализ выражения может использоваться для устранения общего подвыражения.
(C) Анализ живых переменных может использоваться для устранения мертвого кода.
(D) x = 4 ∗ 5 => x = 20 является примером исключения общего подвыражения.

Ответ: (D)
Объяснение: (A) Базовый блок — это последовательность инструкций, в которой элемент управления входит в последовательность в начале, а в конце — TRUE.

(B) Доступный анализ выражений может быть использован для устранения общего подвыражения TRUE. Доступные выражения — это алгоритм анализа, который определяет для каждой точки в программе набор выражений, которые не нужно пересчитывать. Доступный анализ выражений используется для устранения глобального общего подвыражения (CSE). Если выражение доступно в какой-то момент, нет необходимости переоценивать его.

(C) Анализ переменных в реальном времени может быть использован для устранения мертвого кода ИСТИНА.

(D) x = 4 ∗ 5 => x = 20 является примером исключения общего подвыражения FALSE.
Общее исключение подвыражений (CSE) означает, что оптимизация компилятора заменяет идентичные выражения (т. Е. Все они оцениваются на одно и то же значение) на одну переменную, содержащую вычисленное значение, когда это целесообразно сделать.

Ниже приведен пример

In the following code:

a = b * c + g;
d = b * c * e;

it may be worth transforming the code to:

tmp = b * c;
a = tmp + g;
d = tmp * e;

Источники:
https://en.wikipedia.org/wiki/Common_subexpression_elimination
https://en.wikipedia.org/wiki/Available_expression
Тест на этот вопрос

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

ВОРОТА | GATE-CS-2014- (Set-1) | Вопрос 65

0.00 (0%) 0 votes