Доступное выражение - Википедия - Available expression

В области оптимизация компилятора, доступные выражения представляет собой алгоритм анализа, который определяет для каждой точки программы набор выражения это не нужно пересчитывать. Эти выражения называются имеется в наличии в такой момент. Чтобы быть доступными в точке программы, операнды выражения не должны изменяться ни на каком пути от появления этого выражения до точки программы.

Анализ представляет собой пример форварда анализ потока данных проблема. Поддерживается набор доступных выражений. Каждый оператор анализируется на предмет изменения операндов одного или нескольких доступных выражений. Это дает наборы доступных выражений в конце каждого базовый блок, известный как начало с точки зрения анализа потока данных. Выражение доступно в начале базового блока, если оно доступно в конце каждого из предшественников базового блока. Это дает набор уравнений в терминах доступных наборов, которые можно решить с помощью итеративного алгоритма.

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

Рекомендации

  • Ахо, Сетхи и Ульман: Компиляторы - принципы, методы и инструменты Эддисон-Уэсли Паблишинг Компани 1986