kiyokaのブログアーカイブ

Archive of old blog posts

ゆっくり階段を登るがごとく

オレ処理系の[Nendo]についての開発メモ。 img Gaucheのutil.listが動いた。 syntax-rulesも動くようになったし、他にもバグをいくつか修正したので一旦リリースするべきだろう。 実は、let-syntaxとletrec-syntaxのようなレキシカルスコープでのみ有効なsyntax定義が実装できていないので、片手落ちなんだけど、リリースした後に取りかかろう。

といっても、実装はそんなに簡単では無さそうだ。 恐らく、let-syntaxされたsyntaxだけ先に実行可能コードにコンパイルされ、他の部分は、S式のままの状態を作り出す必要があるのだろう。(関数の一部だけ溶け出したような状態?) マクロ展開用のプロシジャはコンパイルしないと実行できないし、マクロの操作対象はS式でないといけない。うーん、なんか勘違いしていないかな。

過去に「2011-04-06Nendo*Scheme syntax-rulesが動いた日」でdefine-syntaxとdefine-rulesが動いた話を書いたが、let-syntaxを実現しようと思ったらだいぶ書き直さないといけないだろう。 不完全でもいいので仮実装をして初めて syntactic-closures で書かれている内容がわかるようになってきた。

凡人はこういう風に、一歩一歩階段を登るしか無いんだろう。 今の自分にとっては、好きでやっていれば下手でも一応前進するという実績が大事かも。