Forth、RPN そして Mind

hp電卓の逆ポーランド記法: RPN

本ブログは、プログラム関数電卓を扱うといいながら、カシオの fx-5800P や CasioBasic について取り上げています。と言うのも、私が所有して実際に触れるのは、カシオのプログラム関数電卓のみで、CasioBasic搭載機種は fx-5800P しか持っていないためです。

他の電卓に興味が無いと言えば決してそうではなく、カシオのプログラム電卓のライバルである、hpやTIの電卓にも興味があります。そうはいっても、今のところ、当ブログのポリシー「自分で触って分かったことだけを発信する」を守っているので、持ってもいないプログラム電卓については、何も書くことが出来ません。

カシオのライバル機の中でも、hpの逆ポーランド記法(RPN: Reverse Polish Notation) を採用した製品には、一目置いています。私の乏しいプログラミング言語の知識の中でも、RPNによるForthと言うプログラミング言語は、スタック構造を利用するがゆえに、本質的に非常にコンパクトなプログラミング言語であり、だからこそ電卓に搭載する価値がある、と思っているからです。



RPNやMindとの出会い

現在メジャーになっているプログラミング言語の多く、例えばC言語系やBasic系は、英単語や英文法に近いものばかりです。一方で、Forthと言うプログラミング言語は、その記法が(偶然にも)日本語にピッタリ合います。HP電卓も、逆ポーランド記法を採用している製品が多く、実は日本語で考えて書くのに整合性が非常に高いと言う、ある意味日本人向きの操作体系になっています。

私が初めて逆ポーランド記法に出会ったのは、勤めていた会社の当時の重役のイギリス人が持っていたhp電卓を借りた時でした。簡単な計算すらも全くできず「なんじゃこりゃ!」とビックリした時でした。「君たち日本人にピッタリの方法だよ」と言われて、再びビックリしました。

それからかなり後で、ボランティアで個人的にプログラムを作る際に、少しだけ日本語プログラミング言語 "Mind" を使う機会がありました。もうかなり忘れてしまったのですが、当時はCやBasicに洗脳された頭で、最初はかなり混乱しました。

MindForthの流れを汲むプログラミング言語です。そして、Forthでは逆ポーランド記法(RPN)を用います。



(1+2)x(3+4)

Fothでは、(1+2)X(3+4) は、

1 2 + 3 4 + x

と記述します。

HPのRPNプログラムでも同じだと思います。電卓として計算する時は、数字キーを押したら[Enter]キーを押して、桁数の違う数字を認識させる必要があります(だったと思います)が...


要するに、

1 と 2を 足し 3 と 4を 足し 掛ける

というわけです。

と書きます。Mindでは、まさにそのままだったと思います(記憶があやふやですが...)。



制御構造も、独特です。

CasioBasicでは、

[条件] If
Then [処理1]
Else [処理2]
IfEnd


Mindだと、

[条件]?
  ならば [処理1]
      さもなければ [処理2]



なお、CasioBasicで、If 文の代わりに、⇒命令を使う場合は、

[条件]⇒[処理1]「処理2]

と書きます。

いままで、⇒命令は、C言語の3項演算子と同じだと思っていました。おそらく、カシオも同じように考えていたと想像しています。

しかし、これは Forth や Mind の書き方に近いことに改めて気付きました。



プログラミング言語を解説したサイト

Mind についての説明で、面白いサイトがあります →こちら

24 と 38を 足しちゃったりするわけぇ

と記述しても、ちゃんと動作するらしいです(笑)


ちなみに、このサイトは様々なプログラミング言語について、とても分かりやすくまとめられています。こちら へ移行中とありますが、最近の更新が無いのでチョット気になっています。



そんなわけで、hp電卓のRPNでのプログラミングは全く経験がありませんが、依然として興味を持っています




応援クリックをお願いします。励みになるので...

人気ブログランキングへ


FC2ブログランキングへ


keywords: HP電卓RPNプログラム関数電卓

リンク集 | ブログ内マップ
関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

コメントの投稿

非公開コメント

最新記事
最新コメント
カテゴリ
C# (3)
検索フォーム
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム関数電卓は、プログラムを作り・使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています

おもしろい・役に立つならクリックしてください。励みになります。

人気ブログランキングへ


FC2ブログランキングへ


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

RSSリンクの表示
最新トラックバック
ブロとも申請フォーム

この人とブロともになる

QRコード
QR