研究課題
メタ・プログラミング言語の処理系は、メタレベル実行によってオブジェクト・プログラムを生成し、そのプログラムを通常の処理系で実行するという2段階の処理を行う。第1段階の処理においては、メタ・プログラムの実行を表す継続(Continuation)と、オブジェクト・プログラムの実行を表す継続の2つの継続を適切に取り扱うことが必要である。昨年度までの研究で、我々は、階層化したshift/resetを用いることにより、これら2種類の継続を適切に表現できるという観測に基づき、階層化されたshift/resetをもつメタ・プログラム自身に対する型システムの構築を精力的に行った。今年度の研究では、静的なshift/resetにたいして、動的な限定継続をあらわすコントロールオペレータであるcontrol/promptについて深く検討し、(1)CPS変換に基づく意味論により、型システムを構築した、(2)この型システムは再帰型を必要とせず、伝統的な型システムの範疇にはいるものであることを示した、(3)型付けられたcontrol/promptの表現能力を調べ、shift/resetより真に強いことを厳密に証明した。これらの成果をもとに、shift/resetおよびcontrol/promptをもつ型付きプログラム言語を、MLの拡張として与え、メタ・プログラミングの基礎言語とした。さらに、多段階(マルチステージ)のメタ・プログラミングのための計算体系として、現在最も強力と考えられるTahaらのラムダアルファという体系に対して、ステージ機能のない体系への翻訳を与え、それが健全であることを証明し、多段階メタ・プログラミングが通常のプログラミング言語上でも実行可能なことを示した。
すべて 2008 2007
すべて 雑誌論文 (5件) (うち査読あり 5件) 学会発表 (1件)
Proc. ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation(PEPM08)
ページ: 147-157
情報処理学会論文誌:プログラミング 49, No.SIG3(PRO36)
ページ: 28-38
Frontiers of Computer Science in China 2:1
ページ: 12-21
Proc. Fifth Asian Symposium on Programming Languages and Systems(APLAS2007), LNCS 4807
ページ: 239-254
Higher-order and Symbolic Computation 20
ページ: 339-369