@mreluzeon

Зачем нужна Обратная Польская Запись?

Для чего можно использовать ОПЗ?
  • Вопрос задан
  • 1478 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
1. Обратная польская запись легко вычисляется стековым автоматом. Этот автомат работает крайне просто:
• видишь операнд — положи на стек.
• видишь операцию — забери со стека столько элементов, сколько в операции мест, проведи операцию и положи результат обратно на стек.
• В некоторых автоматах (например, в тех же калькуляторах) есть вспомогательная операция «ввод» (↑), отделяющая один операнд от другого: 2+2 = 2 ↑ 2 +
На этом принципе работает большинство виртуальных машин — и сопроцессор x87 (если не ошибаюсь, там 8-местный стек).

2. Обратная польская запись намного компактнее, чем дерево операций.

3. Обратная польская запись не имеет скобок, но, тем не менее, чётко указывает, к каким выражениям относится та или иная операция. Насобачившись, человек будет с лёгкостью переводить запись из алгебраической в обратную польскую и даже притрагиваться не будет к современным «умным» калькуляторам, которые со скобками и учитывают приоритет умножения над сложением.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Что бы избавиться от скобок. Выражение в ОПЗ можно вычислять слева на право, читая посимвольно. При группировке скобками такое невозможно.

UPD:
FPU, например, как раз программируется с помощью ОПЗ. Т.е. преобразовав выражение в ОПЗ можно очень легко записать его на ассемблере.
Ответ написан
Комментировать
@evgeniy_lm
так удобнее автоматизировать вычисления
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы