逆ポーランド記法
読み:ぎゃくポーランドきほう
外語:RPN: reverse polish notation
演算式の記述方法の一つで、
演算子
を演算対象の後に置く手法。
ポーランド記法
の逆。
目次
概要
特徴
スタック式
記法
一般的な例
電卓
製品
ソフト
概要
演算子を演算対象の間に記述する一般的な「中置表記法」に対して、この記法は日本語で「後置表記法」ともいう。
発案者は、ポーランドの数学者ヤン・ウカシェヴィチ(Jan L/ukasiewicz)。
日本語での数式の読み方と一致する記法となるため、根強い愛用者がある。また、
プログラマー
の中にはこの逆ポーランド方式を好み、逆ポーランド式の電卓(RPN電卓)を愛用する者も少なからずいる。
特徴
スタック式
この記法は、スタック式とも言われる。
演算対象が先にあり、最後に演算子が来るため、コンピューター処理に喩えると、演算対象を全て
スタック
に積んだ後で一気に取り出して演算する、かのように考えることができるからである。
ゆえに論理的で、プログラマーに愛されており、また
オブジェクト指向
であるとも言える。
記法
通常の算術式からの変換方法は、次の基準に従う。
数値はそのまま出力
演算子はスタックが空か、直前にスタックにプッシュしたものの優先順位と比較し
同じか高い時にプッシュ
それ以外の時はスタックからポップした演算子の優先順位が高い間出力し続け、現在の演算子をスタックにプッシュする
一般的な例
表現方法は複数存在するが、例えば次のように書くことができる。
a+b → ab+
a+(b×c) → abc×+
(a+b)×c → ab+c×
(a+b)÷c−d → ab+c÷d−
a×b+c×d+e×f → ab×cd×ef×++
((a+b)×(c+d)+e)×f → ab+cd+×e+f×
逆ポーランド記法では、() を使用することなく演算を表記することができる。
まず数字がきて、その後に演算子が来る。頭の中で実際にやっている動作と同じ書き方、それが逆ポーランド記法である。
電卓
製品
Hewlett-Packard
から、この記述法のRPN電卓が販売されていて高い人気を持つ。
演算子が必ず最後に来る記述法なので、"=" のキーは、この
電卓
には存在しない。
RPN電卓では(普通の電卓もそうだが)演算子キーを数値のセパレーターとする。演算を行なわずに数値をスタックに積む(数値入力終了の通知)には「エンターキー」を用いるため、RPN電卓には一般の電卓には存在しない「エンターキー」が存在する。
ソフト
Windows
、
Mac OS
、
Android
、
iOS
など、主要なOSでは、フリーソフトやシェアウェアなどで、概ねRPN電卓が存在する。
Windows用としては、16ビット時代からあるWHP((C)NAG)、および32ビット/64ビット化されたWHP32((C)未来情報産業株式会社)などのほか、シンプルなものから多機能なものまで、様々なものが作られている。
再検索