従来の方式よりも単純で強力な,型主導(Type-Directed)部分評価の新しい方式を提案する。我々の方式は従来の方式と異なり,種々の強力な型システムを備えた関数型言語に適用できる。その最たる例として,本稿ではSchemeのような,動物に型付けされた関数型言語を主な対象として扱う。鍵となるアイディアは,関数適用やペア破壊(carとcdr)などの原始的な値破壊子を拡張し,オペランドが動的である場合は残余コードを生成することである。これにより,従来の方式の複雑さや非力さの主な原因であった,リフレクションと呼ばれる操作が不要となる。本稿では,2レベルλ計算を拡張することにより我々の方式を定式化し,その正当性を証明する。さらに,オフラインのプログラム生成器生成器(cogen)がオフラインの構文主導(Syntax-Directed)部分評価器から導出できるのと同様の変換により,我々の型主導部分評価器は高階抽象構文を用いた単純なオンラインの構文主導部分評価器から導出できることを示す。このことは,型主導部分評価が通常の構文主導部分評価よりも効率的である理由を明確にするとともに,元の単純な構文主導部分評価器をより複雑なものと置き換えれば,より強力な部分評価器が得られる可能性を示唆する。
抄録全体を表示