検索 English (United States)  日本語 (日本)
2024年11月24日 ..:: ソフトウェア開発 & IT » ブログ 技術との戯れ (on seosoft.net - 更新終了) ::..   ログイン
Microsoft MVP for Visual C# (Jan 2009 - Dec 2014)
Microsoft MVP for Visual C# (Jan 2009 - Dec 2014)
-
 カテゴリ 最小化

  
 カレンダー 最小化

  
 旧ブログ 最小化

  
-
DotNetNuke.jp
 技術との戯れ 最小化
6 9

Written by: 瀬尾 佳隆
2010/06/09 0:13

※はじめに・・・本当に雑談です(笑)

少し前から迷っていたんですが、HP電卓を買ってしまいました。

今時の若いもん(笑)は知らないんだろうな、HP電卓って言っても。
逆ポーランド記法 (RPN) で計算していく計算機です。


じゃあ、逆ポーランドって何?という話になるわけですが。

代数では

1 + 2

のように演算子を間に書くわけです。これが中間記法。

それに対して逆ポーランドでは

1 2 +

と書きます。演算子が後ろに来るわけです。

この程度の式では全くありがたみがありませんが、複雑な式になると、普通の電卓では一回で計算するのが難しい式でもHP電卓なら一発で答えが導き出せるというメリットがあります。(もちろんキーはそれなりに打たないといけませんが)

 

ここまで無理矢理な式でなくても、

(1 + 2) * (3 + 4)

1 2 + 3 4 *

となります。括弧がなくなり、キー入力数が減ります。


慣れないとメリットを感じられないかもしれませんが、コンピュータの内部に適用すると、単純なスタックを用意するだけでよく、構造が複雑にならないというメリットがあります。

つまり、

  • 知らないトークンならばオペランドとしてスタックに積む
  • 知っているトークンならばオペレーターとしてスタックからオペランドを取り出して結果をスタックに積む

という処理を繰り返す、基本的にはそれだけですべてが表現できます。
中間期法の言語で必要なB-Treeのような考え方・実装も不要です。

コンピュータ内部でもシンプルな構造になるなら、人間にとっても理解しやすいはず。(難解に見えるのは単に慣れの問題かと)

この考え方に基づいて作られたプログラミング言語が Forth です。 
ちょっと触ってみるぶんには Gforth くらいしか適当な処理系がありませんが、遊びやパズル代わりとしてはなかなか楽しいと思います。

ということで、7月の技術ひろばの勉強会では、「RPN & Forth 超入門」と題したミニセッションをやってみようかと思っています。参加者を置いていく結果になる懸念はありますが、まあたまにはこういう変わり種もいいかなと。


なんかよくわからんが面白そうだから/ちょっと懐かしくなったので、という方はこちらからどうぞ。私にお金を落としてください(笑)。

 

※ここだけの話、本当はHP-15Cがほしかったんですが、ヤ*オクとか見ても高くて、単なるオモチャとしては出せる金額ではなかったので、HP-35sで手を打ってしまったのは私です。でも実際遊んでみると面白くてHP-35s、大満足!

Tags:

Your name:
Title:
Comment:
Security Code
Enter the code shown above in the box below
Add Comment    取消  

  
-
 ブログ検索 最小化

  
-
Microsoft Tech Fielders
-
Copyright 2000-2014 by Seosoft   使用条件  プライバシー
DotNetNukeョ is copyright 2002-2024 by DotNetNuke Corporation