著者
高島 尚希 亀山 幸義
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.5, no.1, pp.27-27, 2012-03-28

本発表は,コントロールオペレータの表現力を解明すること,特に,捕捉される限定継続の範囲が入れ子になることを許すコントロールオペレータnested shift/resetを,入れ子を許さないコントロールオペレータcontrol/promptを用いて表現できることを厳密に示すことを目的とする.コントロールオペレータnested shift/resetは,よく知られているコントロールオペレータshift/resetに,タグを付加して拡張したものである.本研究の出発点は,独立に提案され研究されているnested shift/resetとcontrol/promptが,抽象機械のレベルでは非常に類似した構造を持つ,という観測である.この観測に基づき,抽象機械のレベルで前者を後者でシミュレートできることを証明する.この手法を拡張して,nested control/promptをcontrol/promptでシミュレートできることも示す.最後に,抽象機械をソースコードレベルに戻す変換を適用することにより,nested shift/resetやnested control/promptを,control/promptでマクロ定義可能であることを示す.本手法によるマクロ定義は,簡潔なデータ型を用いて実現され,多くの関数型言語でそのまま利用可能である.