と言っている間にももう45秒(ry

FONCは、アラン・ケイ率いるViewpoint Research Institudeで行われている、 2万行でOSを書いてしまおうというプロジェクト。

OSと言ってもLinuxみたいなんじゃなくて、Smalltalkの環境的なものを考えてるんじゃないかと思うけど、 ともかく2万行でシステム全体が機械語に落ちるのが目標(じゃないかと思われ)。

んで今のところSmalltalkっぽい言語(idst, Pepsiとも, *.st)のコンパイラと、それで書かれたSchemeっぽい言語(Coke, *k)のインタプリタが動いている。 コンパイラの方はブートストラップになっていて、idstでidst自身のソースをコンパイルすると機械語で書かれたidstのバイナリができる。

また両方とも(?)OMetaとかPEGとかそのへんのパターンマッチをサポートしていて、それが行数にだいぶ貢献してるらしい。 Coke言語は角括弧で [ receiver selector [arguments...] ] とか書けるようになっていて、 これでSmalltalk側と連携するんだと思う。

まあとりあえず

$ svn co http://piumarta.com/svn2/idst/trunk

で取ってきていろいろいじってみるのが良いかと。

MacPortsでmakeが通らないときは、/usr/localを/opt/localに書き換えるとうまく行くかも。

ブートストラップで自分自身が機械語に落ちるというのはやっぱり格好いいですねｗ しかも、もうグラフィカルなデモとかが動く状態になっていて楽しい。

感想

20分だと全然検証できん。嘘が書いてあると思うので鵜呑みにしないように。

追記

大事なことを書き忘れたが、行数を減らすってのはゴルフするという意味ではなく、 「どこまでコードを畳めるか(抽象度を高められるか)」という話です。