夏ゼミ2011

9月8日から10日まで,諏訪湖の近くで行われた研究室の夏ゼミに参加していた.
各自が情報工学に関する何かについて自由に発表するというもので,俺は型レベルプログラミングについて話した.
FunctionalDependencies, FlexibleContexts, FlexibleInstances, UndecidableInstances といった定番(?)の拡張について,なぜそれらが必要になって,具体的にどのような拡張を行うかといった点についても触れたつもり…
本当は http://research.microsoft.com/en-us/um/people/simonpj/papers/fd-chr/ に基づいて話そうと考えていたけど,間に合わなくて全体的に「こういうものなんですよ」みたいな話になってしまった.
まぁ時間内に型レベルプログラミングっぽいところまで持って行くにはむしろこれでよかったのかもしれない…


最後に見せたコードはこんなの.UndecidableInstances の下では Turing-complete になるということで Brainf*ck のナイーブなインタープリタ
http://www.ideone.com/bcofH
メモリの持ち方がなぜか assoc list.メモリのアドレスもメモリの内容も自然数
. と , の実装は省き,eval は実行が終了したときのメモリの状態を返している.


他の人の発表の中では CAM (Categorical Abstract Machine) の話が一番気になった.
何か関数型な言語の真面目なコンパイラを書いてみたい.

追記 2011-09-13 23:08

スライドへのリンクを貼り忘れていた…
http://dl.dropbox.com/u/162725/slides/110908.pdf