FORTH の情報まとめてみた 2016 年版

  • 9
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

FORTH の情報をまとめてみた('16)

あまりにも FORTH の情報が少ないのでここでまとめておこう。まずは、一体全体 FORTH とは何者でどうつかったらよいか?というところから始めるべきか?

FORTH よお前は何者だ?

ここのページが充実してますね。
impos-forth iMops というオブジェクト指向型の Mops という言語の実装のようです。全部読んでいないのですが、プログラミング言語Forth 序章 っていうのを呼んでいけば FORTH を学べそうな気がしています。
早食いなら Rpn and forth 超入門 をみればいいかな?
Mind という日本語 FORTH もある。日本語プログラミング言語 Mind

そこから抜粋。

Mindは,スタック・マシンの機構を計算上の中心概念としながら,処理系に負担をかけずにかなり自由な表現を許すという特徴を持ち,よい処理系と開発環境が整備された現時点でもっとも実用的な日本語プログラミング言語と言えよう.

(財)機械システム振興協会『21世紀における新 社会システム開発に関する調査報告書-日本語プ ログラミングの調査-』(昭和63年3月)より抜粋

昭和63年の引用が泣けます。

有名な FORTH としては Gforth も紹介しておきましょう。

そのほかの情報
- http://www.forthworks.com/retro/
- http://freecode.com/projects/ffl
- http://www.mpeforth.com/index.htm
- http://www.excamera.com/sphinx/fpga-j1.html

FORTH の哲学的な何か

FORTH の何か哲学的なところに触れたいならこの辺のページも参照しておきましょう。とくに samwyn さんのところの情報は面白い。
-[MOVING FORTH[(http://www.bradrodriguez.com/papers/moving1.htm)
- http://www.h7.dion.ne.jp/~samwyn/forth.htm

なぜFORTH?

コンパイラを作ったりすると最後は VM に行きついたりするのですが、VM を作ろうとするとなぜか FORTH を参照することになったりします。昔の技術ですが、pic でも動いて 64bit 環境でも当然動く。スピードも負けない(なんぜプログラマがコンパイルしているようなもんだからね)。温故知新でもうちょい情報があってもいいかなと思う今日この頃。

ついでに VM の情報もまとめておこう。

自分の興味のある所だけつまみ食い的にリンクを紹介します。VM はやっている人も多いの(LLVM って VM ですか?)情報にはそう困らないでしょう。

Cog VM リリース記念: Squeak、Ruby、Python を恒例のフィボナッチベンチで戦わせてみる
VM というと最近では V8 (古いか、、、)が速いといううわさです。確かに速いのですが、驚きなのは VisualWorks という Smalltalk の VM が速いこと。Cog VM も早い。

Forthでハノイの塔
Fort-VFX という商用の FORTH が早い。早い VM の代表の VisualWorks も商用。商用だと金がかかっているというのもあるだろうけど、フィードバックがかかるから早くなるのかな?

NASM / Linux x86-64でForth開発日誌3 ベンチマーク
フィボナッチでの速度比較。squeak(Cog VM かな?) 速い。

その他リンク
- https://www.cs.tcd.ie/David.Gregg/papers/toplas05.pdf
- https://developer.android.com/reference/dalvik/bytecode/Opcodes.html
- https://source.android.com/devices/tech/dalvik/

だからどうなのよ

gforth も retro もすごく難しい。なんとなく、そこにいろんな技術が眠っている気がしている。ちゃんとこの箱を開けて技術共用したいというのが狙い。誰か続いてくれ。