- 841 名前:デフォルトの名無しさん mailto:sage [04/10/18 08:58:39]
- さんざん既出だがSchemeの基本構文要素なんて10個に満たないが、
全く不便に感じないのは強力なマクロの記述能力があるからだよ。 処理系がI/Fを開放してればマクロを通してそのままマシンコードに落とせるし、 コンパイラとマクロの間には区切りがない。 LISPは本来処理系のコンパイラが貧弱でも後付でカバーできる程の能力を 秘めているが、あまりそれを認識してる奴はいないみたいだな。 ユーザーにスキルがあれば自力でinline-expandやlambda-liftingの様な プリコンパイルが簡単に追加できる。 コアの作りこみを最小限とすれば新しい処理系はすぐに完成する。 人間で言うと脳や神経だな。骨格や肉付けはすべて後回しでいい。 コアを何度も作ってる奴は、残りをすべて使い回しが利くS式で記述する筈だ。 だからGaucheの様なCでなんでもかんでも書く方針はちょっといただけないな。 確かに労せず速い処理系になるだろうが、それは処理系固有のモノになってしまい、 LISPの自己拡張性を否定しかねない。 どのみちブートストラップの真似事してるんだからVMに渡すプリコンパイラぐらい Scheme自身で書いてみろよ。パフォーマンスにさほど違いはないから。 と、Gaucheのソース流し読みして思った次第。
|

|