Специальная математика. Соловьев А.Е. - 93 стр.

UptoLike

Составители: 

Рубрика: 

арифметическое выражение, требующее дальнейшей обработки и конкретные метки
переходов.
1
X > 0 10
0
1 "семантика"
X = 0 15 оператора IF.
0
1
X < 0 20
0
Тут как раз хороший повод вернуться к вопросу трансляции арифметических выражений.
Часто для них не только) выполняют преобразование в польскую инверсную запись
(ПОЛИЗ), что упрощает последующее выполнение-вычислеие.
Вообще есть три способа записи операций:
1. Инфиксный: a*b (например, а + b).
2. Префиксный: *ab (например, (a,b)).
3.Постфиксный: ab* (например, а и b - просуммировать)
О третьем, постфиксном, способе и идет речь. Его еще называют
польской инверсной записью; в память о польском математике Яне Лукашевиче.
Преобразование выражений в ПОЛИЗ с легкой руки Э.Дейкстры (первой величины в
области теоретического программирования) стали часто изображать в виде
"железнодорожного разъезда".
выход вход магазина (стека)
0
n верхушка магазина
Алгоритм преобразования арифметических выражений в ПОЛИЗ.
1. Поступающие на вход операнды сразу проходят на выход.
2. Поступающие на вход операторы сравниваются по приоритету. Если приоритет оператора
на входе магазина больше, чем в верхушке магазина, то оператор со входа поступает в
магазин (first in/last out). Если приоритет оператора на входе меньше или равен
приоритету оператора в верхушке магазина, то оператор из верхушки магазина идет на
— 93 —
X:= A- B
обработка ошибки
арифметическое выражение, требующее дальнейшей обработки и конкретные метки
переходов.


                      X:= A- B
                                      1
                         X>0                 10

                             0

                                      1                            "семантика"
                         X=0                 15                    оператора IF.

                             0

                                      1
                         X<0                 20

                              0
                   обработка ошибки



Тут как раз хороший повод вернуться к вопросу трансляции арифметических выражений.
Часто для них (и не только) выполняют преобразование в польскую инверсную запись
(ПОЛИЗ), что упрощает последующее выполнение-вычислеие.
Вообще есть три способа записи операций:
1. Инфиксный:     a*b (например, а + b).
2. Префиксный: *ab (например, (a,b)).
3.Постфиксный: ab* (например, а и b - просуммировать)
О третьем, постфиксном, способе и идет речь. Его еще называют
польской инверсной записью; в память о польском математике Яне Лукашевиче.
Преобразование выражений в ПОЛИЗ с легкой руки Э.Дейкстры (первой величины в
области теоретического программирования) стали часто изображать в виде
"железнодорожного разъезда".




выход                                      вход магазина (стека)
                                            0



                  n    верхушка магазина

   Алгоритм преобразования арифметических выражений в ПОЛИЗ.
1. Поступающие на вход операнды сразу проходят на выход.
2. Поступающие на вход операторы сравниваются по приоритету. Если приоритет оператора
   на входе магазина больше, чем в верхушке магазина, то оператор со входа поступает в
   магазин (first in/last out). Если приоритет оператора на входе меньше или равен
   приоритету оператора в верхушке магазина, то оператор из верхушки магазина идет на

                                          — 93 —