thumb|upright|Video: Keys pressed for calculating eight times six on a [[HP-32S|HP-32SII (employing RPN) from 1991]]

Reverse Polish notation (RPN), also known as reverse Łukasiewicz notation, Polish postfix notation or simply postfix notation, is a mathematical notation in which operators follow their operands, in contrast to the more common infix notation (in which operators are placed between operands), as well as prefix notation (in which operators precede their operands). The notation does not need any parentheses as long as each operator has a fixed number of operands.

The term postfix notation describes the general scheme in mathematics and computer sciences, whereas the term reverse Polish notation typically refers specifically to the method used to enter calculations into hardware or software calculators, which often have additional side effects and implications depending on the actual implementation involving a stack. The description "Polish" refers to the nationality of logician Jan Łukasiewicz,

Software calculators

Software calculators:

  • Atari Calculator
  • Mac OS X Calculator
  • Unix system calculator program dc
  • Emacs lisp library package calc
  • Xorg calculator (xcalc)
  • F-Correlatives in MultiValue dictionary items
  • RRDtool, a widely used tabulating and graphing software
  • , a program for algebraic operations on NetCDF grids, part of Generic Mapping Tools (GMT) suite
  • Qalculate!, a powerful and versatile cross-platform desktop calculator
  • WRPN Calculator

Programming languages

Existing implementations using reverse Polish notation include:

  • Stack-oriented programming languages such as:
  • Forth
  • dc
  • STOIC
  • Factor
  • PostScript page description language
  • Befunge
  • Joy
  • IPTSCRAE
  • Lotus 1-2-3 and Lotus Symphony formulas

References

</references>

Further reading

  • (13 pages)
  • (4 pages)
  • [https://books.google.com/books?id=dHZKAQAAMAAJ] (13 of 702 pages)
  • Rosettacode.org<!-- https://web.archive.org/web/20170624165146/https://rosettacode.org/wiki/Parsing/RPN_calculator_algorithm --> providing many implementations in several programming languages.
  • http://rpn.codeplex.com/ <!-- https://web.archive.org/web/20170624164548/https://rpn.codeplex.com/ -->Implementation of RPN with custom functions support and flexible list of operators.
  • https://xrjunque.nom.es/ConvertAlg2RPN_RPL.aspx <!-- https://xrjunque.nom.es/ConvertAlg2RPN_RPL.aspx -->Free online Algebraic expression to RPN Converter