本年度は、自己反映言語の効率的な実装に必要と考えられる3つの基盤技術のうち「直接実行されるコードと解釈実行されるコードの共存法の確立」および「部分継続に関する理論の発展」を主に行った。前者については、これまで継続渡し形式のインタプリタについては共存法が知られていたが、一方で継続渡し形式で継続を無秩序に使用することによる問題点も明らかとなっていた。今回、そこの部分を整理し、無秩序な使用を禁止することで、直接形式のインタプリタについても共存法が明らかになって来た模様である。現在、その実装が出来上がり、各種の例について実装を試してみるとともに、実装の整理を行っているところである。直接形式のインタプリタにするにあたって最も重要だった点は、各レベルの継続を混同しないことである。そこの切り分けをきちんとすることで継続渡し形式の場合と同じように共存できるようになった。また、どうして継続渡し形式だと問題が生じて来ていたのかも明らかになり、問題点を解決するにはどのような制限を設ければ良いのかがわかってきた。後者の基盤技術については、部分継続を使った新しい応用として探索問題を取り上げ、各種の探索問題を直接形式で非決定的なプログラムとして記述してみた。その結果、バックトラックなど複雑な処理を書くことなく探索問題を書くことができるようになった。ここで使われた非決定性オペレータは、ライブラリとして整備し、各種の探索戦略用のものを用意している。ここでの結果については、学会にて発表した。
|