top recent

正ポーランド記法の言語


目次

  1. ポーランド記法...
  2. すっかり忘れてた...
  3. 恥ずかしながら...
  4. ポーランド記法の演算器...
  5. ポーランド記法言語っぽい??...
  6. UIも人間も存在原理は同じなのか…...

ポーランド記法

1928年ポーランドの論理学者ジャン・ウカシェビッチによって考案。
ポーランド記法では
∧はKで、
∨はAで、
¬はNで、
⇒はCで、
⇔はEで、表される。
ポーランド記法では演算子を前に置き、
(¬p∨q)⇒(¬r∧s)
という論理式は、
CANpqKNrs
と表される。

文責:ばし
  以上、Independent Computist 第二話 HPフリークの憂鬱(中編)
     Mac Power 7月号, 2002, 284-287
  からパクリました。これ読むまでポーランド記法って実は知らなかった‥‥とほほ。

[[id:782]] 2002-06-26 13:19:58


すっかり忘れてた

Tiki:逆ポーランド記法
どこかで読んだ読んだと思っていたけど、ここだった。

[[id:789]] 2002-06-27 09:14:47


恥ずかしながら

PostScriptとLispのいいとこどり。 (ポーランド記法モドキの言語)をしようと思ったけど、それじゃポーランド記法そのものではないことが分かりましたのでポーランド記法モドキの言語に引っ越しました。

[[id:776]] 2002-06-26 01:03:19


ポーランド記法の演算器

RPNはスタックマシンで簡単に作れるけれど、PNはそうでもなさそう?

- 初期状態。
- 入力(ストリーム?)からトークンを一つ取って来る。
- 値ならばそれをそのまま評価値として返す。
- オペレータならばシグニチャ(必要とするパラメータの数)を調べて、その回数分だけ「値をひとつ取って来る」という作業をする。
- 値を必要な数だけ取ってきたところで、オペレータの計算を実行する。

値をひとつ取って来るという作業の内容は
- 現在の状態を保存しておいて上の最初から始める。値の評価値や計算の実行結果を値として返す。

というわけで、再帰的な処理をやらなくてはならない。
Lispのread-eval-loopと同じ?

----
そうですね。RPNよりずっとめんどくさそう。
値はキュー(FIFO)に入れていって、パラメタが揃ったら実際の処理。
パラメタがキューに揃ってない場合は、継続をスタックに積んで次のトークンへ。
処理が終わったらオペレータスタックに前のオペレータの継続が積まれてないか調べて積まれていれば継続をスタックから取り出して実行。
オペレータスタックが空なら次のトークンへ。
‥‥‥‥とか、どうでしょうか?

[[id:821]] 2002-06-30 23:38:15


ポーランド記法言語っぽい??

ポーランド記法の演算器 (#4)
継続スタック案は考えているうちに混乱してきたので、第1案にて計算機に毛が生えた程度のものをかんがえてみました。
FORTHでだけど‥‥。
ポーランド記法言語PN-(仮称)ていうか言語じゃないし…
一応、
define ave / + _ _ 2 .
の様に新しいオペレータも定義できたり‥‥。

--ばし
----
名前を考えました。
「デシマル Queue」……、だめか。

----
↑元ネタがわかんないや‥‥と思ったのですが、
もしかしてウルトラQだったりします?
Decimal Queue Notation 略して DQN (ぁ
----
元ネタはNHK教育の幼児向け昆虫クイズ番組「ムシマルQ」でした。

[[id:846]] 2002-07-06 08:45:51


UIも人間も存在原理は同じなのか…

ポーランド記法の演算器 (#4)

逆ポのほうが楽だということの本質的原因って、
ヒューメイン・インタフェース―人に優しいシステムへの新たな指針 (本棚) でいう「名詞-動詞形式」が、
人間だけじゃなく機械についても時として有利に働く、ということなのかも。

uiのselectionとstack積みは同じだし、
uiがコマンド発行のあとselectionを暗黙のうちに解消するのは
PSとかのオペレータの挙動と同じだし。

#こう考えると益々、ウラル-アルタイ語族の語順がヒューメインに思えてくる(笑)
----
「時間の矢」に対してオペレータの並び順が「正順」か「逆順」かというのは
人間にとっては結構でかい差だったりするのかも。むむむ。

[[id:823]] 2002-07-01 01:37:21


top recent

HashedWiki version 3 beta
SHIMADA Keiki