トップ «前の日記(21-August-2014) 最新 次の日記(23-August-2014)» 編集

つれづれなるままに

これまでの訪問者人
本日の訪問者人  昨日の訪問者人
月齢14.3

AI | AIきりたん | Ast | Beat Saber | CeVIO | Cn | cover | de | Emacs | En | Es | fr | git | html | iPad | It | Just Dance | misc | MMD | MV | NEUTRINO | OVA | PC | PV | Ru | SF | SKK | stable diffusion | SynthesizerV | tDiary | Th | Vocaloid | VRC | VRChat MMD | Vsinger | Vtuber | was | YuNi | お茶 | アニメ | アメリカ | イラスト | オカリナ | カゲプロ | キズナアイ | テレビ | ノベル | ノーベル賞 | ビートセイバー | フィートセイバー | フランス | ラズパイ | ラノベ | 万葉語 | 世界 | 中国 | 予定 | 即売会 | 台湾 | 台風 | 合成してみた | 同人 | 地震 | 宇宙 | 家電 | 展示 | 描いてみた | 政治 | 旅行 | 日記 | 映画 | 時事 | 書道 | 歌ってみた | 歴史 | 海外 | 演奏してみた | 漫画 | 特撮 | 科学 | 英国 | 訃報 | 語学 | 踊ってみた | 陶笛 | 障害 | 音楽 | 飲み |

22-August-2014 ぐがー [長年日記]

_ [日記] ダウン

結局、昨日の調子が悪いのをひきずっていて、今日はだめでした。

がく。

_ [PC][SF] FORTH (Wizard's Baneのちょいネタバレあり)

ネタバレといいつつネタバレプラグインはあえて使ってないです。

あのあとFORTHについてちょっと調べてみたんです。

一番の特徴はスタック方式で実行が行われるということですね。

よく引き合いに出される例は足し算なんですが、逆ポーランド方式で記述されます。

 3 4 + . (cr) 7 ok

みたいな感じですね。

なんのこっちゃという感じですけど、スタックの仕組みを理解してると非常にわかりやすくって。

スタックというのは上から順にデータを積み上げていくイメージです。

上の例だとまずスタックに3を、次に4を上から積んで、そこで + と来たときに、下に積まれている3と4が足されて結果が出力されるわけです。

これで何がいいかというと、構文解析がやたら楽になるということで。

頭から順番に実行していけばいいので、頭から順番にコンパイルできて、プログラムが非常にコンパクトにできる、ということだそうで。

あと、プログラム、というか環境を動的にどんどん拡張していけるというのも特徴で。

FORTHの環境の上でワード(サブルーチンのようなもの)を定義すると、それをシステムの再起動なしに、次のステップで使うことができるし、改変も楽にできます。ここらへんはLISPと似てますね。

Wikipediaからの引用なんですが、ワードの定義の例です。

: FLOOR5 ( n -- n' )   DUP 6 < IF DROP 5 ELSE 1 - THEN ;

これは以下のCのプログラムに相当すると。

int floor5(int v) {
 return (v < 6) ? 5 : (v - 1);
}

つまり、入力値が6未満だったら5を返し、それ以上だったら1を引いた値を返すと。

これは以下のように実行されます。

 
1 FLOOR5 CR . 
5 ok
8 FLOOR5 CR .
7 ok

コンパイルによってメモリー上のデーターが再構築されて、無駄な定義などが整理されるので、結果がまたコンパクトになるんだとか。

基本的な定義を積み重ねて、それを利用してさらに段々と大きなシステムを作っていくというスタイルはまさにWizard's Baneでウィズが呪文を組み上げた方式と同じですね。

ちなみに、作中ではウィズはイーマックに対して\(バックスラッシュ)と唱えてコマンドモードにするのですけど、FORTHではバックスラッシュではじまる行はコメントなんだそうです ^^;;

まぁ、ウィズの呪文はスタック式の構造をしてないように見えるので、FORTHそのものではないわけですけどね。

実際のところは、本当の呪文は別のところで行われていて、イーマックに入力していたのは本当にコメントだったりして。。。

まさかね。

どっちにしろ、FORTHはモダンな言語とはかなり構造が違うわけなんですが、小さなリソースでもシステムを構築できることなどから、組み込み系で人気があるようですし、天文関連でも有名みたいですね。こちらにガイドがあります。

FORTHの実装についてはForth Systemsからたどれます。フリーのコンパイラーへのリンクもありますね。

いろいろな実装についてここにあります。Javascriptで書かれたやつとかAndroidで動くやつとかあったりして。

_ [PC] Firefox

なんかわからないのですが、やたらFirefoxがフリーズします。

何度もリセットしてるのですが。

CCleanerとかで一時ファイルとかを見てみると、毎回やたらFirefoxが大量にファイルをためこんでるし。

一体何が???


【PR】ブログへ記事を投稿して報酬ゲット!アフィリエイトのA8.net