前年度までの研究で、自己反映言語のコンパイルのうち、第1レベルとしてユーザによって変更されたメタレベルインタプリタのコンパイルについてはある程度、可能であることが示されていた。このコンパイルは一部、通常の部分評価を行う際には不要と思われる余計なユーザによる注釈が必要であったが、実装を整理することでその注釈は不要であることが確認され、それをもとに実装を若干、改良した。この内容は、前年度の内容ともあわせて国際会議にて発表した。 一方、第2レベルのコンパイルとして、変更されたメタレベルインタプリタのもとでのユーザプログラムのコンパイルを行うのは現在の MetaOCaml では難しいことがわかっていた。これの解決には、MetaOCaml によって生成されたコードのステージ化が必要であるが、それを手動で行うのは現実的ではない。本年度は自動でステージ化を行うのを目指して、OCaml 内部で使われている構文木の構造などを洗い出し、そこに手を入れるのが非現実的ではなさそうなことを確認した。しかし、実際にステージ化を実装するには至っていない。自動のステージ化については、本研究期間終了後も引き続き行っていく予定である。 部分継続に関する理論としては、型主導部分評価の正当性の定式化について、その整理を試みた。現在 2CPS で書かれている証明をある程度 monadic に書き直すことには成功したが、未だ整理され切ったという段階には来ていない。既にある定式化を整理するという方向性に無理があるかもしれず、別の方法を考える段階に来ているかも知れない。これも今後の課題である。
|