逆ポーランド表記とは

google-deepmind-37x7-sBhwf8-unsplash.jpg

質問

逆ポーランド表記とは、あれはなんなんですか?
何に使うのですか?


解答

逆ポーランド表記(ぎゃくポーランドひょうき、Reverse Polish Notation: RPN)とは、数式を括弧なし・演算子後置で表現する方法です。
計算機やコンパイラ、スタックベースの評価において非常に効率的な表記法として使われています。


■ 通常の数式(中置記法)

私たちがふつう見る数式は「中置記法」です: ``` 3 + 4 × 2 ``` 演算子(+, ×)がオペランド(数値)の間に置かれる表記法です。
ただしこのままだと「どっちを先に計算するか?」があいまいなため、括弧や優先順位が必要です。


■ 逆ポーランド表記(RPN)

逆ポーランド記法では、演算子をオペランドの後ろに書きます: ``` 3 4 2 × + ``` 意味は: ``` 3 + (4 × 2) ``` つまり、スタック(後入れ先出し)で簡単に評価できます。


■ スタックによる処理の流れ

上記の「3 4 2 × +」を処理するとき、以下の手順になります: 1. スタックに「3」push 2. スタックに「4」push 3. スタックに「2」push 4. 演算子「×」が出たので、2つpop → 4と2 → かけ算 → 結果8をpush 5. 次に演算子「+」が出たので、2つpop → 3と8 → たし算 → 結果11が得られる

■ なぜ使うのか?



◎ 利点

* 括弧が不要 * 優先順位の処理がいらない * 機械的に簡単に処理できる(スタックマシンに適している) * 電卓やコンパイラに向いている

◎ 使用例

* HPのRPN電卓 * PostScript(プリンター言語) * Java VM、Forth、Lispの一部処理系 * コンパイラ設計・字句解析や構文解析

■ 補足:ポーランド表記とは?

もとの「ポーランド記法」は演算子を前に置く前置記法です: ``` + 3 × 4 2 ``` 逆にしたから「逆ポーランド(後置)」と呼ばれています。


まとめ

表記法特徴
-----
中置`3 + 4 * 2`通常の数式、優先順位が必要
前置`+ 3 * 4 2`構文木がそのまま表現される
後置(RPN)`3 4 2 * +`スタック処理が簡単、括弧不要
必要であれば、中置記法から逆ポーランド記法に変換するアルゴリズム(シャントアルゴリズム)も説明できます。







いちばんやさしい基本情報技術者絶対合格の教科書 出る順問題集 令和7年度/高橋京介【3000円以上送料無料】

価格:1980円
(2025/8/11 15:49時点)
感想(0件)


JISハンドブック 鉄鋼 2024-1/日本規格協会【3000円以上送料無料】

価格:19910円
(2025/6/23 10:10時点)
感想(0件)


 



この記事へのコメント

広告です。クリックいただけると励みになります。