ポーランド記法
別名:前置記法
【英】polish notation
ポーランド記法とは、数式表現の表記法の一つで、演算子を数値の前に置く記法のことである。考案者がポーランド人の論理学者であったことからこのように呼ばれる。
数式は普通は「1+2=」のように数値と数値の間に演算子を書くが、ポーランド記法では「+12」と表記する。利点として、括弧を使わなくても計算の優先順位を明確にできる点がある。X+123は(1+2)X3と解釈される。1+(2X3)ならば、+1X23と書く。ポーランド記法は、コンピュータで数式を扱う際に適した方式であるとされる。
ポーランド記法の演算子の位置を後置した表記法は逆ポーランド記法と呼ばれる。スタックを利用すると逆ポーランド記法の方がすっきりしたアルゴリズムになるとされ、より一般的に用いられる。例えば次の通りである。式を順番に処理していく過程で、数字であればスタックにpush(積む)、演算子であれば、スッタクから2個をpop(取り出す)して演算した結果をスタックにpush、最後にスタックに残った値が答えとなる。
ポーランド記法
![]() | この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。(2024年12月) |
![]() |
ポーランド記法 |
中置記法 |
逆ポーランド記法 |
ポーランド記法(ポーランドきほう、Polish Notation)とは、数式やプログラムを記述する方法(記法)の一種。演算子(オペレータ)を被演算子(オペランド)の前(左)に記述することから、前置記法(ぜんちきほう、prefix notation)とも言う[1]。
その他の記法として、演算子を被演算子の中間に記述する中置記法、後(右)に記述する後置記法(逆ポーランド記法)がある。
名称の由来は、ポーランド人の論理学者ヤン・ウカシェヴィチ(Jan Łukasiewicz)が考案したことによる。
概要
例えば、「1 と 2 を加算する」という演算を、一般的に数式の表記に用いられる中置記法で記述すると、以下のようになる。
1 + 2
一方、ポーランド記法では、加算を表す演算子 + を、被演算子である 1 と 2 の前(左)に置いて、以下のように記述する。
+ 1 2
ポーランド記法は、演算子と被演算子を分離して記述することで、式の解釈を明確にするために考えだされたものであり、二項演算であれば、括弧を使うことなく演算を一意に表記することができる。
例えば、中置記法による以下の式を考える。
(1 + 5) * (2 + 3)
これをポーランド記法で記述すると以下の通りとなり、括弧が不要である。
* + 1 5 + 2 3
一方、ポーランド記法では、被演算子同士を区切る記号(区切り文字)が必要である(中置記法では演算子が区切り文字として働くため不要)。一般には空白が用いられることが多く、上の例では1と5の間、2と3の間にある空白がそれに当たる。
コンピュータへの応用
ポーランド記法では、演算子があたかも関数適用のような形態をとる。これを直接利用したのがLISPで、LISPでは、例えば +
も cons
などと同じ、関数の名前に過ぎず、関数と全く同じに実引数リストの前に置く。これは、例えばC++の、演算子(その多くが中置記法)のオーバーロードのために、operator+
というような特別な構文を使ったりしていることなどとは対照的である。
また、LISPやほかの有名な言語では関数の引数の数は不定の場合がある一方で、演算子の引数の数は固定であることが多い。例えば、C言語のmain
関数やJavaのmain
メソッドが取る引数の数は不定だが、足し算の+
演算子が取る項は常に2つである。そこで、関数電卓などでは後置記法である「逆ポーランド記法」が用いられることが多い。プログラミン言語FORTHがその代表である。
関連項目
脚注・参照
- ^ 小項目事典,ASCII.jpデジタル用語辞典, ブリタニカ国際大百科事典. “ポーランド記法(ポーランドきほう)とは? 意味や使い方”. コトバンク. 2024年12月26日閲覧。
外部リンク
前置記法と同じ種類の言葉
- 前置記法のページへのリンク