逆ポーランド記法(Reverse Polish Notation, RPN)は、数式やプログラムの記法の一つ。
演算子(加減乗除など)を被演算子(数値や変数など)の後に置くことから、
後置記法 (Postfix Notation) とも言う。
記法には、他に、一般的に使われている、演算子を被演算子の中間に記述する中置記法や、
演算子を被演算子の前に記述する前置記法(ポーランド記法)が有る。
中置記法は、
A+B=C → A plus B equals C
という風に、英語での表現に近く、
後置記法(の演算子早出し逆ポーランド記法)は、
A B + C = → AにBを加えたものがCと等しい
という風に、日本語での表現に近くなる。
※国語学の領域。
逆ポーランド記法では、左端から右へ数式を見て行き、
演算子が現れた時点で、直前に有る被演算子で該当する計算を行い、
結果の値に置き換えながら、右端へ辿って行く。演算子に優先順位は無い。
例えば、「5 4 3 + ×」は、
左端から右へ辿って最初に有る演算子「+」が二項演算子(被演算子が2つ)なので、
「4 3 +」の並びに注目し、その部分を計算結果の「7」に置き換えて、「5 7 ×」とし、
同様に「35」という答えを導き出す。
日本語では、「5に、4に3を足したものを、掛ける」。
これを中置記法で書くと「5×(4+3)」となる。
逆ポーランド記法は、 コンピュータにとっては、基本的には、被演算子をスタックに積み上げて行き、 演算子が入力された時点で、スタック上の被演算子を演算子で計算し、 結果に置き換えることで実現出来るため、都合の良い記法である。
Javascript で、テキトーに作ってみた恐ろしくシンプルな逆ポーランド法によるスタック電卓。
数値を続けて入力する時は「Enter」を押す。
クリアは本当は無いのだけれど、スタックをクリアするのに作った。
私が偶々持っているRPN電卓。
慣れると便利。