
3.7. Декомпозиция формул 263
щем рекурсивном способе
обхода
дерева
в так называемом
концевом
порядке
(англ.: post-order):
Назовём дерево Канторовича
атомарным,
если оно состоит
из
одного-едипственного знака операнда. Польская инверсная
запись неатомарного дерева Канторовича получается последо-
вательным выписыванием слева направо польских инверсных
записей
всех
его поддеревьев с последующим выписыванием
знака
операции, указанного в корне дерева. Польской инверс-
ной
записью атомарного дерева Канторовича является знак
операнда.
В нашем примере все операции двуместны, так что дерево
Канторовича — бинарное; концевой порядок отвечает такой по-
следовательности прохождения:
левое поддерево — правое поддерево — корень.
На
рис. 138 показан ход исполнения алгоритма для нашего
примера.
3.7.4.
Перевод
в
одноадресную
форму
В большинстве машин для основных операций предусмот-
рено не три адреса, а всего лишь один; для операций, в которых
один из адресов операндов совпадает с адресом результата,
используется специальная переменная АС (называемая
сумма-
тором
1
),
которая и выступает в качестве соответствующего
операнда, например
АС := AC-f a.
Стандартное обозначение АС, как указывает уже сам выбор
шрифта для него, только для этих целей и
будет
использовать-
ся.
При этом мы
будем
далее считать, что речь идёт о пере-
менных какого-то вполне определенного сорта; строго говоря,
следует
различать сумматоры
AC
rea
i
Для вычислений над веще-
ственными числами, АС^для целочисленных вычислений и т. д.
Таким образом,
одноадресные
команды
для двуместных
операций имеют такой вид:
АС:= АС у h[i];
сюда же относятся команды для одноместных операций
АС:=<тАС,
команды засылки в сумматор
АС : = >значение<
2
и АС : = h [i],
1
Соответствующий английский термин — accumulator. Отсюда обозначе-
ние
АС. —
Прим.
перев.
2
В некоторых машинах нет команд типа АС:— >значение< и АС: =
АС у )значение< с явным указанием объекта в команде.