Вычисление выражения, представленного в ПОЛИЗ

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

 

Входной символ Стек Примечание
 
A A4  
* R0 R0=4*A
2R0  
X X2R0  
/ R1R0 R1=2*X
- R0 R0=R0-R1
3R0  
B B3R0  
* R1R0 R1=3*B
2R1R0  
Y Y2R1R0  
* R2R1R0 R2=2xY
+ R1R0 R1=R1+R2
* R0 R0=R0*R1

Результат получен в единственном оставшемся элементе стека.

Контрольные вопросы

1) Какие объекты помещаются в программный стек при входе в функцию?

2) Как изменяется указатель программного стека при выходе из функции?

3) Что происходит с программным стеком при рекурсивном обращении функции к самой себе?

4) Напишите обратную польскую запись для выражения

5) Напишите последовательность операций и состояние стека в процессе вычисления значения выражения, представленного польской записью из предыдущего примера.