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

UptoLike

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