Small is Beautiful

I have made this letter longer than usual because I lack the time to make it shorter.
―Blaise Pascal

If I am to speak ten minutes, I need a week for preparation; if fifteen minutes, three days; if half an hour, two days; if an hour, I am ready now.
―Woodrow Wilson

ミニマリストカーネルの次は、ミニマリストSchemeのハナシ。Chibi-SchemeというR5RS互換のScheme処理系の作者であるAlex Shinnさんが「Small is Beautiful」という記事を書いている。

ピカソの抽象画に始まり、ユークリッドの原論、チューリングマシン、ベルトランの仮説などと来て、ようやくR5RSの話に。R6RSはお嫌いらしい*1。言語仕様を考えたときは、「オッカムの剃刀」じゃないけど、冗長さを削ぎ落とすというのは一つのアプローチだし、対極にはPerlTMTOWTDI(There's More Than One Way To Do It)というアプローチもある。そういう話題に進むのかと思いきや、実装規模の話になってしまった。。。

とにかく、代表的なプログラミング言語処理系の実装規模が表になっている。C LOCがCでの実装行数、Self LOCが処理対象の言語で書かれた行数になる。Chibi-SchemeのC LOCは4578行、Self LOCは609行とTiny Scheme並みだが性能がよいそうな。GCのコードは最初1000行だったけど、200行まで削ったぜ、とか書かれている。

ちなみにPlan9やInfernoで動作するScheme処理系には、Scheme 9 from Empty Space*2inferno-schemeがあるようだ。

*1:R5RSとR6RSの違いはちょっと気になる

*2:2009-12-29:URLはhttp://www.hs-augsburg.de/~hun/www.t3x.org/bits/s9fes/に変更か?