Оптимизация программ: различия между версиями

Материал из WikiGrapp
Перейти к навигации Перейти к поиску
(Создана новая страница размером '''Оптимизация программ''' (''Program optimization'') - специальные приемы и методы, напр...)
 
Нет описания правки
Строка 1: Строка 1:
'''Оптимизация программ''' (''Program optimization'') -  
'''Оптимизация программ''' (''[[Program optimization]]'') -  
специальные приемы и методы, направленные на улучшение качества выходной программы при трансляции. Проблема построения оптимальной программы ''алгоритмически не разрешима'', и поэтому основная задача оптимизации состоит в удалении из выходной программы неоптимальностей, возникающих
специальные приемы и методы, направленные на улучшение качества выходной программы при трансляции. Проблема построения оптимальной программы ''[[алгоритм|алгоритмически]] не разрешима'', и поэтому основная задача оптимизации состоит в удалении из выходной программы неоптимальностей, возникающих
в ней из-за универсального способа трансляции. При этом основные способы оптимизации транслируемой программы заключаются в удалении вычислений или объектов из процессов выполнения программы или в замене в них сложных вычислений на более простые.
в ней из-за универсального способа трансляции. При этом основные способы оптимизации транслируемой программы заключаются в удалении вычислений или объектов из процессов выполнения программы или в замене в них сложных вычислений на более простые.



Версия от 18:58, 9 декабря 2009

Оптимизация программ (Program optimization) - специальные приемы и методы, направленные на улучшение качества выходной программы при трансляции. Проблема построения оптимальной программы алгоритмически не разрешима, и поэтому основная задача оптимизации состоит в удалении из выходной программы неоптимальностей, возникающих в ней из-за универсального способа трансляции. При этом основные способы оптимизации транслируемой программы заключаются в удалении вычислений или объектов из процессов выполнения программы или в замене в них сложных вычислений на более простые.

Многие оптимизации можно реализовать, применяя так называемую смешанную стратегию программирования. Суть этого метода состоит в том, что для программирования семантически богатой конструкции входного языка (такой, как цикл или процедура) транслятор использует помимо универсального способа перевода целый ряд специализированных, ориентированных на конкретные, но зато часто встречающиеся в реальных программах варианты использования этой конструкции. Однако обычно оптимизирующие трансляторы используют метод оптимизирующих преобразований, который в отличие от смешанной стратегии обладает достаточной языковой независимостью. Оптимизирующие преобразования выполняются над транслируемой программой в рамках некоторого ее промежуточного представления и разделяются на машинно-независимые и машинно-зависимые. По существу, каждое оптимизирующее преобразование включает в себя: анализ потока данных и потока управления в программе, дающий достоверную информацию о возможных вычислениях по программе, о свойствах ее фрагментов и данных, --- так называемый потоковый анализ программы; проверку некоторых свойств собранной информации --- так называемых контекстных условий; преобразование фрагмента программы в случае удовлетворения этих свойств --- собственно оптимизирующее преобразование (трансформация).

Литература

[Касьянов/88],

[Касьянов-Поттосин],

[Касьянов/83]