Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

逆ポーランド記法とは? わかりやすく解説

ぎゃく‐ポーランドきほう〔‐キハフ〕【逆ポーランド記法】

読み方:ぎゃくぽーらんどきほう

reverse polish notationコンピュータープログラムで、数式記述するとき、演算子オペレーター)を被演算子オペランド)のうしろに置く記法。通常X+Yと書かれる数式は、「X Y +」と記述する。名称はポーランド論理学者ヤン=ウカシエビッチが考案したことによる後置記法


逆ポーランド記法

読み方ぎゃくポーランドきほう
【英】reversed Polish notation

逆ポーランド記法とは、コンピュータプログラミングにおいて、算術式を表記する手法一つである。

逆ポーランド記法の特徴は、「(」と「)」を使用しないことと、演算子オペランドではなくオペランドの後に配置することにある。

具体的には、「A×(B+C)」の算術式を逆ポーランド記法で表すと「ABC+×」となり、左端から右端の順に演算する。この表記法は、スタック採用する演算機構適している。

なお、同様の表記法で、演算子オペランド前に配置するスタイルポーランド表記法といい、右端から左端へと演算する。上記の例では、「×A+BC」となる。

プログラミングのほかの用語一覧
コーディング:  仮引数  桁落ち  基数  逆ポーランド記法  記憶クラス  キャスト  共用体

逆ポーランド記法

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/09/21 10:14 UTC 版)

ポーランド記法
中置記法
逆ポーランド記法
HP-32SIIの8×6の計算で押すキー

逆ポーランド記法(ぎゃくポーランドきほう、英語: Reverse Polish Notation, RPN)は、数式やプログラムの記法の一種。演算子被演算子の後にすることから、後置記法 (Postfix Notation) とも言う。

その他の記法として、演算子を被演算子の中間に記述する中置記法、前に記述する前置記法(ポーランド記法)がある。 名称の由来は、演算子と被演算子の順序がポーランド記法の逆になっていることによる。

概要

例えば、「3 と 4 を加算する」という演算を、一般的に数式の表記に用いられる中置記法で記述すると、以下のようになる。

3 + 4

一方、逆ポーランド記法では、加算を表す演算子 + を、被演算子である 3 と 4 の後(右)に置いて、以下のよう記述する。

3 4 +

逆ポーランド記法による表現は日本語などSOV型の言語の語順とある程度似ており、上式程度であれば「3 と 4 を加算する」とそのままの順序で読み下せる。逆ポーランド記法を使うForthの影響を受けているプログラミング言語Mindでは、「3と 4とを 足す」と書く。

もう少し複雑な例として、中置記法による以下の式は、

(3 + 4) * (1 - 2)

逆ポーランド記法で記述すると以下の通りとなる。

3 4 + 1 2 - *

つまり、逆ポーランド記法では後で使われる演算子ほど、右に位置することになる(ポーランド記法では逆になり、左に位置する演算子ほど後で使われる)。ちなみに上式を日本語で読み下すと「3 と 4 を足したものに 1 から 2 を引いたものをかけ合わせる」となる。

その他、逆ポーランド記法の特徴として区切り文字の必要性などがあるが、これらについてはポーランド記法と同様のため、そちらの項を参照のこと。

コンピュータへの応用

逆ポーランド記法を使えば、式の計算をする(評価)には、先頭からひとつずつ順番に記号を読み込み、その記号が演算子以外であればスタックに値を積み、演算子であればスタックから値を取り出して演算し結果をスタックに積む、という簡単な操作の繰り返しだけでよい。そのため、プログラミング初心者の練習課題として、逆ポーランド記法の電卓を作ることがよく行われる。

前述の手順であれば、スタックに積むのは値(たとえば後述する例では整数値)だけである。もしこれが他の順序だったとしたら、演算子に相当するものを記憶するか、順番に読むだけでは済まず行きつ戻りつするか、などしなければならない。

プログラミング言語ForthPostScriptなどのこの記法を採用したものがある。

ヒューレット・パッカード社の電卓HP-35など)が有名で、他いくつかの電卓(特に関数電卓に採用がある)にもあるが、逆ポーランド記法による入力方法を採用している電卓がある(近年の関数電卓のような数式入力ではなく、計算機械としてスタックモデルであり、それを直接操作しているという形なので、厳密なことを言うと逆ポーランド記法「順」ということになる)。

計算動作の例

(このような動作をベースとしている計算モデルやコンピュータを、スタックマシンと言う)

例題として以下の式を考える。スタックの他に1個のアキュムレータを持つ計算機だとする。

3 4 + 1 2 - *

[]スタックの内容。左から右に積む。最初は空である。

  1. 3をスタックに積む [3]
  2. 4をスタックに積む [3 4]
  3. +が押されたら、
    1. スタックからデータを下ろしアキュムレータに入れる(アキュムレータ ← 4) [3]
    2. スタックからデータを下ろしアキュムレータを足してアキュムレータに入れる(アキュムレータ ← POPした値 + アキュムレータ) []
    3. アキュムレータの内容は 7 になる (3 + 4 = 7)
    4. アキュムレータの内容をスタックに積む [7]
  4. 1をスタックに積む [7 1]
  5. 2をスタックに積む [7 1 2]
  6. -が押されたら、
    1. スタックからデータを下ろしアキュムレータに入れる(アキュムレータ ← 2) [7 1]
    2. スタックからデータを下ろしアキュムレータを引いてアキュムレータに入れる(アキュムレータ ← POPした値 - アキュムレーター) [7]
    3. アキュムレータの内容は -1 になる (1 - 2 = -1)
    4. アキュムレータの内容をスタックに積む [7 -1]
  7. *が押されたら、
    1. スタックからデータを下ろしアキュムレータに入れる(アキュムレータ ← -1) [7]
    2. スタックからデータを下ろしアキュムレータを掛けてアキュムレータに入れる(アキュムレータ ← POPした値 * アキュムレーター) []
    3. アキュムレータの内容は -7 になる (7 * -1 = -7)
    4. アキュムレータの内容をスタックに積む [-7]

このように

  • スタックにデータを積む (PUSH) 操作
  • スタックからデータを下ろす (POP) 操作
  • 二つのオペランド間の演算

だけで計算動作が可能である。

スタックトップの直接演算が可能な構造ならば、例えば最初の部分は

  1. 3をスタックに積む [3]
  2. 4をスタックに積む [3 4]
  3. +が押されたら、
    1. スタックからデータを下ろしレジスタに入れる(レジスタ←4) [3]
    2. スタックトップにレジスタの値を加算する [7]

と簡略化される。

文献

関連項目

外部リンク


逆ポーランド記法

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/07/09 14:21 UTC 版)

Microcifra 10」の記事における「逆ポーランド記法」の解説

microcifra 10 は、3レベル(«X»,«Y»,«Z»)のスタックを持つ逆ポーランド記法電卓である。[E]キーエンターキーであり、[F]+[x←→y]で置数スタック(«X»)と第二レベルスタック(«Y»)の値を交換する。[C]キーはクリアキーであるが、実際スタックを1段下降させるのである

※この「逆ポーランド記法」の解説は、「Microcifra 10」の解説の一部です。
「逆ポーランド記法」を含む「Microcifra 10」の記事については、「Microcifra 10」の概要を参照ください。

ウィキペディア小見出し辞書の「逆ポーランド記法」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ

「逆ポーランド記法」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



逆ポーランド記法と同じ種類の言葉


固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「逆ポーランド記法」の関連用語

逆ポーランド記法のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



逆ポーランド記法のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【逆ポーランド記法】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの逆ポーランド記法 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのMicrocifra 10 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS