ПРОГРА́ММ ОПТИМИЗА́ЦИЯ
-
Рубрика: Математика
-
Скопировать библиографическую ссылку:
ПРОГРА́ММ ОПТИМИЗА́ЦИЯ, преобразование программ для ЭВМ, направленное на улучшение таких их рабочих характеристик, как время выполнения и объём используемой памяти. Одно из требований, предъявляемых к П. о., – её корректность: преобразованная программа должна быть эквивалентна исходной по своим результатам. Иногда допускается, чтобы область определения преобразованной программы была шире исходной области. Другое требование состоит в том, чтобы П. о. имела приемлемую алгоритмич. сложность при реализации на ЭВМ.
По степени зависимости оптимизации от особенностей ЭВМ П. о. делят на машинно зависимую, машинно ориентированную и универсальную. По размеру оптимизируемого участка программы различают локальную, квазилокальную и глобальную оптимизации. Для ускорения П. о. используют факторизацию управляющего графа (см. Программ анализ): программа представляется в виде иерархии вложенных фрагментов (т. н. гамаков, интервалов, зон), а глобальная оптимизация заменяется серией квазилокальных, применяемых к выделенным структурным фрагментам программы.
При П. о. часто отделяют фазу анализа программы, на которой выделяются фрагменты управляющего графа, а также выделяются разнообразные свойства программы, существенные с точки зрения улучшения её эффективности, от фазы собственно преобразования, на которой производится улучшение программы.
Наиболее важными с практич. точки зрения являются следующие виды П. о.: уменьшение частот выполнения фрагментов программы («чистка» циклов, зон и рекурсивных областей); экономия избыточных и общих выражений; «чистка» программы за счёт удаления недоступных, неиспользуемых или не влияющих на результат фрагментов программы; упрощающие алгебраич. преобразования с использованием свойств применяемых в программе операций.
Разработка алгоритмов оптимизации опирается на теорию схем программ. В свою очередь, методы П. о. находят применение при программ верификации и программ синтезе.