- 逆ポーランド記法、または後置記法では、演算子を被演算子の後ろに配置するため、括弧を使用する必要がなくなります。
- これは、命題論理を簡略化するためにヤン・ウカシェヴィチによって考案されたポーランド語の接頭辞表記法に由来する。
- ヒューレット・パッカード社がHP-9100AやHP-35といった象徴的な電卓に採用したことで、この技術は爆発的に普及した。
- コンピュータにおいては、スタックを用いることで実現され、Unixのようなシステムやスタック指向言語において基本的な概念となっている。
昔の科学計算機が内部でどのように動作していたのか、あるいはなぜ一部のプログラミング言語が数学を逆向きに記述しているように見えるのか、疑問に思ったことがあるかもしれません。足し算と引き算の記号は常に数字の中央に来ると学校で教えられてきましたが、逆ポーランド記法と呼ばれる魅力的な世界があり、私たちの常識を覆します。
このシステムは現代の発明ではなく、純粋な論理と代数式の効率化への欲求に根ざしています。通常の方法とは異なり、ここでは因数の順序によって式の書き方が変わるため、括弧を完全に省略でき、コンピュータシステムへのデータ入力が簡素化されます。
原点: Jan Łukasiewicz からコンピューティングまで

すべては1924年に、ヤン・ウカシェヴィチというポーランドの優秀な数学者、論理学者、哲学者のおかげで始まりました。彼は命題論理を簡略化しようと試み、演算子を被演算子の前に置く接頭記法(またはポーランド記法)と呼ばれる記法を考案しました。例えば、3と4を足したい場合、3 + 4と書く代わりに、+ 3 4と書きます。
当初は論理学者や哲学者にとって興味深い概念と思われ、アロンゾ・チャーチも数理論理学の著書の中で言及しているが、このアイデアはやがてコンピュータ科学の世界にも浸透していった。実際、LISPプログラミング言語はその構文をまさにこの接頭辞モデルに基づいて構築しており、論理学に端を発するものが、プログラミングのための強力なツールとなったことを示している。
逆ポーランド記法とは一体何でしょうか?

前置記法では演算子を被演算子の前に置きますが、逆ポーランド記法(RPNまたは後置記法とも呼ばれる)ではその逆で、演算子を被演算子の後に置きます。したがって、通常の 2 と 5 の和は2 5 +となります。
このシステムの最も強力な点は、演算子の被演算子の数が固定されている限り、括弧を省略できることです。例として、演算 5 * (12 + 4) を考えてみましょう。従来のシステムでは、まず加算を行うために括弧が必要ですが、RPN では5 12 4 + *と簡単に記述できます。これは、機械にとってより簡潔で分かりやすい方法です。
ヒューレット・パッカードと電卓の黄金時代

60年代半ば、オーストラリアの科学者チャールズ・レナード・ハンブリンは、このシステムを電子機器に実装するためのアルゴリズムを完成させた。そしてヒューレット・パッカード社はこれに投資することを決定し、1968年に画期的なデスクトップ電卓HP-9100Aを発売した。その後間もなく、伝説的なHP-35が登場した。これは初のポケットサイズの科学計算機であり、1972年から1975年にかけて、数千人ものエンジニアや学生がRPN(逆ポーランド記法)を利用できるようになるきっかけとなった。
これらの機械を使うには、結果を解釈するために多少の頭の体操が必要でしたが、キー操作の効率は格段に向上しました。長い数式を入力してイコールキーを押す代わりに、数値と演算子を入力するだけで瞬時に処理されるため、作業効率が大幅に向上しました。
技術的な実装:スタックとパイプ

プログラミングの観点から見ると、RPNはスタックと呼ばれるデータ構造を使って非常に簡単に実装できるため、素晴らしいと言えます。システムは数値をスタックに格納し、演算子が現れるとすぐに最後に入力された値を取り出し、計算を実行して、結果をスタックにプッシュバックします。
この効率性こそが、この方式を採用した物理的な電卓は以前ほど多く見られなくなったものの、RPNが現代技術の内部構造において生き続けている理由である。スタック指向言語やパイプラインまたはデータフローに基づくオペレーティングシステムで広く使用されており、 Unix環境におけるRPNの存在はその典型的な例である。
ルカシェヴィチと論理学に関する興味深い考察
ヤン・ウカシェヴィチは、数学の記述方法を私たちに残しただけでなく、多値論理や様相論理の先駆者でもありました。彼は、嘘つきのパラドックス(「これは偽である」というフレーズ)のような知的難題にも果敢に挑みました。彼の解決策は実に秀逸でした。論理原理は変数の値になり得る対象にのみ適用されると主張し、矛盾するフレーズは変数の値にはなり得ないため、論理の範疇外であり、従来の論理的手法では分析できないと結論づけたのです。
ポーランドの論理学者の思考からHP電卓の回路、そしてUnixカーネルへと至るこの魅力的な旅は、情報整理の代替方法がいかにデータ処理を最適化できるかを示しています。括弧を不要にし、スタックの使用に依存することで、逆ポーランド記法は多くの現代コンピュータシステムのアーキテクチャにおいて、目には見えないものの、根幹を成す柱であり続けています。