Реферат: Оптимизация программ
то
начало
X:=X+3
Z:=2 конец
иначе начало X:=X+3 W:=X+4 конец
преобразуется к виду
X:=X+3 если A>0 то Z:=2 иначе W:=X+4
В эту же группу входит и запроцедуривание - поиск в программе похожих фрагментов и формирование их в виде процедуры.
4.7. Вставка псевдоблока
В процессе оптимизации операторы, сдвигаемые из блоков, собираются в псевдоблок. После оптимизации области Rk операторы псевдоблока должны быть вставлены в программу так, чтобы они выполнялись до (после) выполнения операторов области Ri.
Для того, чтобы операторы псевдоблока выполнялись на всех входных (выходых) путях области Rk, они должны вставляться во все блоки, непосредственно предшествующие (следующие) области либо из псевдоблока должен быть сформирован блок ,который будет вставлен на все входные (выходные) пути области Rk.
Вставка операторов в существующие блоки или формирование из псевдоблока фактического блока выполняется по следующему алгоритму (алгоритм рассматривается для операторов, сдвинутых назад на входные пути, для операторов, сдвинутых вперед, алгоритм аналогичен ):
1) операторы вставляются во все блоки, непосредственно предшествующие области, которые имеют только один непосредственно следующий блок. Вставляемые операторы записываются перед оператором перехода.
2) из псевдоблока создается формальный блок, который вставляется на всех входных путях, идущих от непосредственно предшествующих блоков, имеющих несколько преемников.
3) если входной блок программы принадлежит области Rk, то псевдоблок формируется в формальный блок и ставится на неявном пути между внешним и вызывающим оператором и начальным блоком.
Это соответствует созданию нового блока.
5.Набор и последовательность оптимизирующих преобразований
Каждый из способов оптимизации может быть реализован в виде отдельного преобразования. В то же время практика оптимизирующей трансляции показала, что все эти способы оптимивации, не совпадая друг с другом, реализуют во многом совпадающие процессы обработки программы