Результат генерации примера 2

В результате генерации по сбалансированному дереву получим следующую последовательность команд (пример 2)

S.S1 а

S.S2 d

S.S3 S.S2 + S.S1

S.S4 е

S.S5 S.S3 + S.S4

S. S6 b

S. S7 с операция умножения (8)

S. S8 5.56*5.57J

S. S9 5. 58 + 5. 55.

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

Кроме того, на данном этапе оптимизации выполняется так же работа по выносу триплетов вызова функций, входящих в выражение вперед, с учетом скобочной структуры выражения. Полученный таким образом код обеспечивает первоначальное выполнение всех возможных функций, а затем уже вычисление собственно выражения. Вычисление выражения (соответствую щий поток команд) не будет прерываться командами вызова функций.

Метки:

Связанные записи