Лекция: Алгоритм преобразования арифметических выражений в ПОЛИЗ.

1. Поступающие на вход операнды сразу проходят на выход.

2. Поступающие на вход операторы сравниваются по приоритету. Если приоритет оператора на входе магазина больше, чем в верхушке магазина, то оператор со входа поступает в магазин (first in/last out). Если приоритет оператора на входе меньше или равен приоритету оператора в верхушке магазина, то оператор из верхушки магазина идет на выход и сравнение повторяется. Эти процедуры выполняются до тех пор, пока не исчерпается строка.

 

 

Операции Магазинный Сравнительный
( Æ ¥
:= Æ ¥
+ —
* /
(степень) ­
) Æ

 

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

 

еще рефераты
Еще работы по информатике