使用可能: 数値・整数・小数、演算子 + - * / % ^、括弧 ( )。負数は (0-3) と書いてください。
逆ポーランド記法 (RPN) とは
逆ポーランド記法(Reverse Polish Notation / RPN)は、演算子をオペランドの後に置く後置記法です。 例えば、中置式 3 + 4 * 2 は RPN で 3 4 2 * + と表現されます。括弧が不要で、スタック1つで評価できるため、コンパイラやインタープリタの内部表現として広く使われます。
Shunting-yard アルゴリズム(中置→RPN変換)
エドガー・ダイクストラが1961年に考案したアルゴリズムです。演算子スタックと出力キューを用いて、演算子の優先度・結合性・括弧を正しく処理しながら中置式をRPNに変換します。計算量はO(n)です。
- 数値はそのまま出力キューへ
- 演算子は、スタック上の優先度が高い(左結合の場合は同等も含む)演算子をすべてポップしてから、スタックへプッシュ
(はスタックへプッシュ。)は対応する(が見つかるまでポップ- 最後にスタック上の残り演算子をすべてポップ
RPN の評価(スタックマシン)
RPNの評価はスタック1つで行えます。数値ならプッシュ、演算子なら2つポップして計算し結果をプッシュするだけです。最終的にスタックに残った1つの値が答えです。
演算子の優先度と結合性
+-: 優先度 1(左結合)*/%: 優先度 2(左結合)^: 優先度 3(右結合)—2^3^2=2^(3^2)= 512
活用例
- コンパイラ・インタープリタの式評価
- HP の電卓(RPN 入力方式)
- PostScript 言語
- Java Virtual Machine のオペランドスタック
- 式木(AST)の後順走査
何ができるか
中置式をShunting-yardアルゴリズムでRPN(逆ポーランド記法)に変換し、スタックマシンによる評価をステップ実行で可視化。データ構造・アルゴリズム・コンパイラ学習に。
入力データの扱い
このツールの処理はブラウザ内で完結します。入力したテキストやファイルは、変換・解析のために外部サーバーへ送信されません。
使いどころ
開発、検証、ドキュメント作成、日常作業の下調べなど、手元で素早く確認したい場面に向いています。