Richard Suchenwirth 2004-02-05 - RPN is short for Reverse Polish Notation. Arithmetics is most frequently done (like Tcl's expr) with infix operators
1 + 2
However, this gives rise to problems of operator precedence. Jan Lukasiewicz in Poland, early 1900's, devised a way of putting the operator always in front of its operands, which is known as Polish Notation - see Parsing Polish notation:
+ 1 2
Programming languages that employ Polish notation for easier coding are Lisp, Logo, and not least (except for expr arithmetics), Tcl :) Also, in most languages except APL, functions are invoked by giving first the function name and then the arguments, which is Polish:
f(x,y)
As you have to visually decode Polish expressions from right to left, which is unusual except in Arabic and Hebrew, the alternative "Reverse Polish Notation" was created [by whom, when?...]]
1 2 +
This was used in Forth, HP pocket calculators, Postscript and Joy - see Playing Joy. RPN builds heavily on the concept of a stack, and operators pop their arguments, and push their results, to it. So RPN allows to code with no variables at all, which is a desideratum in functional programming - but of course the stack is the Big Variable, changing its value all the time.
Both PN and RPN allow for unparenthesized expressions - mostly because the user has to deliver the very parse tree in advance...
Pages on this Wiki experimenting with RPN in Tcl: