Формальные языки, грамматики и основы построения трансляторов. Кревский И.Г - 91 стр.

UptoLike

91
16. ПОСТФИКСНАЯ ЗАПИСЬ
Обычные арифметические выражения, используемые в повседневной
практике и содержащие скобки, называют инфиксными
выражениями,
поскольку знак операции располагается между операндами. Порядок
выполнения действий в таких выражениях определяется старшинством
операций и скобками. Вычисление и компиляция таких выражений
подразумевает их предварительный анализ с целью выявления порядка
выполнения операций. Существуют формы записи арифметических
выражений без скобок, в которых порядок действий задается порядком
знаков операций в выражении.
Такие формы записи называются польской
или бесскобочной
записью. Польская запись может быть префиксной, в
которой знак операции предшествует операндам, и постфиксной
, в которой
знак операции следует за операндом. Вычисление и компиляция
бесскобочных выражений оказывается проще, чем выражений со скобками,
поскольку операции должны выполняться в порядке описания и
предварительный анализ не требуется.
Префиксная польская запись
(ПрПЗ) определяется следующим
образом.
Если инфиксное выражение Е представляет собой один операнд а, то
ПрПЗ выражения Е это просто а.
Если инфиксное выражение Е
1
*Е
2
, где * – знак операции, а Е
1
и Е
2
инфиксные выражения для операндов, то ПрПЗ этого выраженияэто
*Е
1
'E
2
',где E
1
', E
2
' – ПрПЗ выражений Е
1
и Е
2
.
Если (Е) есть инфиксное выражение, то ПрПЗ этого выражения есть
ПрПЗ Е.
Перечисленные правила определяют порядок построения ПрПЗ
заданного инфиксного выражения. Например, для выражений (a + b) * (c - d)
построение ПрПЗ можно выполнить так. Обозначим операнды первой
выполняемой операции:
E
1
= (a + b) и E
2
= (c - d).
                                                                                  91
                         16.    ПОСТФИКСНАЯ ЗАПИСЬ
       Обычные арифметические выражения, используемые в повседневной
практике и содержащие скобки, называют инфиксными выражениями,
поскольку знак операции располагается между операндами. Порядок
выполнения действий в таких выражениях определяется старшинством
операций и скобками. Вычисление и компиляция таких выражений
подразумевает их предварительный анализ с целью выявления порядка
выполнения       операций.     Существуют     формы       записи   арифметических
выражений без скобок, в которых порядок действий задается порядком
знаков операций в выражении. Такие формы записи называются польской
или бесскобочной записью. Польская запись может быть префиксной, в
которой знак операции предшествует операндам, и постфиксной, в которой
знак    операции     следует     за   операндом.   Вычисление      и   компиляция
бесскобочных выражений оказывается проще, чем выражений со скобками,
поскольку     операции       должны    выполняться    в    порядке     описания   и
предварительный анализ не требуется.
       Префиксная польская запись (ПрПЗ) определяется следующим
образом.
       Если инфиксное выражение Е представляет собой один операнд а, то
ПрПЗ выражения Е – это просто а.
       Если инфиксное выражение Е1*Е2, где * – знак операции, а Е1 и Е2 –
инфиксные выражения для операндов, то ПрПЗ этого выражения – это
*Е1'E2',где E1', E2' – ПрПЗ выражений Е1 и Е2.
       Если (Е) есть инфиксное выражение, то ПрПЗ этого выражения есть
ПрПЗ Е.
       Перечисленные правила определяют порядок построения ПрПЗ
заданного инфиксного выражения. Например, для выражений (a + b) * (c - d)
построение ПрПЗ можно выполнить так. Обозначим операнды первой
выполняемой операции:
       E1 = (a + b) и E2 = (c - d).