Рубрики

ВОРОТА | GATE CS 2008 | Вопрос 85

Некоторые оптимизации кода выполняются на промежуточном коде, потому что
(A) они улучшают переносимость компилятора для других целевых процессоров
(B) анализ программы более точен в промежуточном коде, чем в машинном коде
(C) информация из анализа потока данных не может быть использована для оптимизации
(D) информация из внешнего интерфейса не может быть использована для оптимизации

Ответ: (А)
Пояснение: Вариант (B) также верен. Но главная цель выполнения некоторой оптимизации кода при промежуточной генерации кода — повысить переносимость компилятора для целевых процессоров. Так что вариант А) здесь больше подходит.

Промежуточный код — это машинно-архитектурный код. Таким образом, компилятор может оптимизировать его, не беспокоясь об архитектуре, на которой будет выполняться код (он может быть тем же или другим). Так что этот тип компилятора может использоваться несколькими различными архитектурами.

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

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

ВОРОТА | GATE CS 2008 | Вопрос 85

0.00 (0%) 0 votes