今回はPLDI2001の論文が対象で、私は以下の3本の論文を紹介した。文字通り.NETのCLRにパラメトリック多相を実装する話。JVMや当時のCLRは多相をサポートしてないので、多相をコンパイルしようとすると性能、プリミティブ型の扱い、コンパイルの複雑さなどの問題がでる。CLRレベルでちゃんとサポートしようという話。伝統的なコンパイル・リンク・実行というモデルではなく、CLRの動的なコード生成やJITを活用した設計になっていて、実行時にコードのspecializeを行う。厳密な実行時型もサポートし、またプリミティブ型によるインスタンス化も性能を低下させずに実現。vtable内に型パラメータとオープンな型のスロットを用意する点などが面白かった。ソフトウェア向けモデル検査器SLAMで抽象化を行っているツールC2BPの詳しい話。生成は自明な話だと思っていたけど、元のプログラムのコードに対応して、どの述語の真偽がどう変化するかを判定するのは結構工夫が必要で、面白かった。Engine)というツールについて。successors)に変換してMONAで検証する。以前にMONAで正規表現にマッチする例を生成したりしたけど、MONAってこんなことも出来るのか、と驚いた。ヒビルテ(2009-10-24)のときに触ってみたJahobも、決定手続きの一つとしてMONAが利用可能だったけど、同じような感じで使ってるのかなぁ。(はてな版)日記は現代の病です。読み過ぎ書き過ぎはあなたの健康を害する恐れがあります。2.2.10-p489。