ВУЗ:
Составители:
Рубрика:
выход и сравнение повторяется. Эти процедуры выполняются до тех пор, пока не
исчерпается строка.
Операции Магазинный Сравнительный
(
:=
+ - 1 1
* / 2 2
(степень)
3 3
) -
y:=a*(b+c) e/(d-k)
y сразу проходит на выход…
) / )
yabc yabc + e yabc + e*dk yabc + e*dk-/:=
1 23 2 32
При выполнении используется стек.
Операнды поступают в стек. Поступив на вход стека, оператор вытягивает из стека столько
операндов, сколько ему нужно. Результат заталкивается в вершину стека.
2 2
3 5 25 3 1 25
2 1 1 25 25 y
1 y y y y
y
7.21. Оптимизация программ
Если не принять специальных мер, в результате трансляции получаются программы,
избыточные и по занимаемой памяти, и по вычислениям. Поэтому меры по оптимизации
принимаются в практически используемых трансляторах.
Оптимизация на первых этапах (проходах) трансляции может быть эффективной потому,
что программа в этот период компактна, хорошо обозрима, а главное – мобильна.
“Плюсы” оптимизации на последних этапах (проходах) очевидны – именно там
аккумулируются результаты неоптимальных решений на всех предыдущих этапах
трансляции.
Оптимизация на начальных этапах:
1. Предварительное вычисление выражений.
При данных x := 2; y := 3;
оператор z:= x + y + 10
замена на z := 15;
2. Исключение невыполнимых ветвей. То есть тех ветвей, которые соответствуют
невыполнимому сочетанию условий.
3. Выделение общих частей.
— 94 —
+ * - / :=
выход и сравнение повторяется. Эти процедуры выполняются до тех пор, пока не исчерпается строка. Операции Магазинный Сравнительный ( := +- 1 1 */ 2 2 (степень) 3 3 ) - y:=a*(b+c) e/(d-k) y сразу проходит на выход… ) / ) yabc yabc + e yabc + e*dk yabc + e*dk-/:= 1 23 2 32 При выполнении используется стек. Операнды поступают в стек. Поступив на вход стека, оператор вытягивает из стека столько операндов, сколько ему нужно. Результат заталкивается в вершину стека. + * - / := 2 2 3 5 25 3 1 25 2 1 1 25 25 y 1 y y y y y 7.21. Оптимизация программ Если не принять специальных мер, в результате трансляции получаются программы, избыточные и по занимаемой памяти, и по вычислениям. Поэтому меры по оптимизации принимаются в практически используемых трансляторах. Оптимизация на первых этапах (проходах) трансляции может быть эффективной потому, что программа в этот период компактна, хорошо обозрима, а главное – мобильна. “Плюсы” оптимизации на последних этапах (проходах) очевидны – именно там аккумулируются результаты неоптимальных решений на всех предыдущих этапах трансляции. Оптимизация на начальных этапах: 1. Предварительное вычисление выражений. При данных x := 2; y := 3; оператор z:= x + y + 10 замена на z := 15; 2. Исключение невыполнимых ветвей. То есть тех ветвей, которые соответствуют невыполнимому сочетанию условий. 3. Выделение общих частей. — 94 —
Страницы
- « первая
- ‹ предыдущая
- …
- 92
- 93
- 94
- 95
- 96
- …
- следующая ›
- последняя »