Реферат: Оптимизация программ
- реализация действий;
- чистка программы;
- экономия памяти;
- сокращение программы.
4.1. Разгрузка участков повторяемости
Такое название получил способ оптимизации, состоящий в вынесении вычислений из многократно проводимых (исполняемых ) участков программы на участки программы , редко проходимые.
К этому виду преобразований относятся различные чистки зон, тел циклов и тел рекурсивных процедур, когда инвариантные (по результату выполнения) в соответствующих участках повторяемости выражения, линейные компоненты (т. е. гамаки, обязательно исполняемые при каждом прохождении участка повторяемости) выносятся из него и размещаются перед входом в участок повторяемости - чистка вверх,- или когда уничтожающие свои предыдущие результаты линейные компоненты или группы линейных компонент участка повторяемости выносятся из него и размещаются за выходы из участка повторяемости - чистка вниз.
При чистке вверх вынесенные вычисления образуют новый непосредственный обязательный предшественник участка повторяемости, а при чистке вниз - непосредственный обязательный преемник участка повторяемости.
Обычно выносятся только такие выражения и линейные фрагменты программы, которые обязательно исполняются при каждом прохождении разгружаемого участка повторяемости.
Примеры.
а) Чистка вниз преобразует цикл
для K:=1, K+1 пока K<=100
цикл
начало
X:=X*K;
если Z>0 то Y:=sin(X);
иначе A[I]:=X+2;
конец
к виду
для K:=1, K+1 пока K<=100
цикл X:=X*K;
если Z>0 то Y:=sin(X);
иначе A[I]:=X+2;
б) Чистка вверх преобразует цикл
для K:=1, K+1 пока K<=100
цикл
начало
если Z>0 то Y:=1;
иначе Y:=Z+2;
X[K]:=X[K] - Y; конец