Реферат: Оптимизация программ
Ф:=F(N); конец;
В группу разгрузок участков повторяемости также входят и различные преобразования, которые осуществляют перемещение гамака по пути, ведущему к месту использования его результатов. При таком преобразовании в отличие от чисток гамак остается в тех же зонах, циклах и процедурах.
Например, с помощью этих преобразований фрагмент
для K:=1, K+1 пока K<=100
цикл
начало
N:=A[K];
если N>0 то переход на L; N:=N*N;
L: если Z=0 то ВЫВОД(N); конец
N:=100;
может быть преобразован к виду:
для K:=1, K+1 пока K<=100
цикл
если Z=0 то
начало
N:=A[K];
если N>0 то переход на L; N:=N*N;
L: ВЫВОД(N); конец;
N:=100;
4.1.1 Сдвиг инвариантных операторов
Рассмотрим подробнее преобразование сдвига инвариантных операторов, входящее в группу преобразований по разгрузке участков повторяемости.
Оператор инвариантен и может быть вынесен из блока, если он удовлетворяет следующим условиям:
1) сдвиг оператора не приводит к тому, что результат сдвигаемого оператора перемещается через оператор, в котором результат используется.
Например, для блока
(mi) * A,B
.
.
.
(mk) := C,(mi)