Scheme コンパイラの勉強 - 目標の再設定

scheme コンパイラの一部を scheme で書いたり Common Lisp で書いたりしていましたが、「Scheme 言語仕様のかなり広い範囲、できうるならすべて、を実装すべきだ」、という結論に至りました。

プログラミング言語仕様は、簡潔さを旨とする scheme であっても十分複雑です。複雑な言語仕様を調べ、理解し、整理し、実装することは、実に面倒な作業です。Scheme (やCommon Lisp)を使うだけであれば、ちゃんと言語仕様を実装した優れた実装が山ほどあります。

LispLisp を実装したり、一部を実装することは、言語実装の面倒な部分をかなり排除して、本質的な部分の理解やその楽しさを強調してくれます。実に楽しい。ぱたぱたと仮想マシンが動く姿は、非常に微笑ましいものです。それが、広い範囲を実装しようとした瞬間、どっと面倒さが表に出てきます。げんなりする量と細かさです。しかし今は、その面倒さの中にも、言語を実装することの本質的な部分がまた、含まれているのだと考えています。

3月のライオン第3巻より)
ねーーーーっっ「達成感」と「めんどくささ」はもれなくセットになってるのがねー