逆波兰表示法 (RPN) 是一种表示表达式的方法,其中运算符符号放在被操作的参数之后。波兰表示法,其中运算符在操作数之前,是由波兰数学家 Jan Lucasiewicz 在 20 世纪 20 年代发明的。在 20 世纪 50 年代后期,澳大利亚哲学家和计算机科学家 Charles L. Hamblin 建议将运算符放在操作数之后,因此创建了逆波兰表示法。
例如,以下 RPN 表达式将产生 2 和 3 的和,即 5:2 3 +。
逆波兰表示法,也称为后缀表示法,与标准算术表达式的“中缀表示法”形成对比,在标准算术表达式中,运算符符号出现在操作数之间。
RPN 具有无需括号即可表示求值顺序或项的分组的特性。RPN 表达式只需从左到右求值,这大大简化了计算机程序中表达式的计算。例如,算术表达式 可以用 RPN 表示为 。
在实践中,RPN 可以使用堆栈结构方便地进行求值。从左到右读取表达式,执行以下操作
2. 如果下一个是运算符,则从堆栈顶部弹出两个项,并将运算结果压入堆栈。
标准的中缀算术表达式可以使用解析算法(如递归下降解析)转换为 RPN 表达式。
RPN 用于惠普和一些德州仪器计算器,以及某些计算机语言的内部。