В интернетах уже многократно проскакивали статьи и переводы о калькуляторах с обратной польской нотацией. Раньше я не придавал им большого значения, пока на глаза не попался перевод статьи «Мягкое знакомство с дополнительным кодом», где фигурировал программистский калькулятор HP-16C. Что сподвигло меня разобраться, что за зверь такой «обратная польская нотация» или reverse Polish notation (далее по тексту RPN). Искра, буря, безумие… Спешно поставив эмулятор HP-16C на телефон, я полез искать калькуляторы с поддержкой RPN, попутно скупая найденные экземпляры...
Попробуем написать синтаксический анализатор математических выражений, который переводит их в обратную польскую запись и вычисляет результат. Например, такое выражение: 6 * (3 + 2) в обратной польской записи будет выглядеть так: 6 3 2 + * Для чего нужна такая запись? Во-первых, её можно использовать на некоторых реальных калькуляторах. В ней отсутствуют скобки, и поэтому порядок введения операций в калькулятор последовательный (не требует запоминания промежуточных результатов и т.п.) Во-вторых,...