Cインタプリタ

http://labs.cybozu.co.jp/blog/kazuho/archives/2006/01/large_c.php
http://labs.cybozu.co.jp/blog/takesako/2006/01/large_c.html
TAKESAKOさんのところより。なんか奇妙な使い方だなあ。何をやってるんだろうか、と思ったら、裏で動いているのはどう見てもPerlです。本当にありがとうございました。
っていうか、どっかでこれにそっくりなソースを見たことが・・・と思ったら、PAYO::Compilerにソースがそっくりなのだ。コンパイラの方はめんどくさいので未公開なのだけれども、インタプリタのほうはhttp://www-ise.is.s.u-tokyo.ac.jp/~y_sawa/tools/Interp.pmにアップしてあるので使いたい人はどうぞ。
で、そのCompilerだけれども、中身がどうなっているかと言えば、結局Cのコードを吐いて適当にGCCコンパイルする、というもの。ちなみにPerlコンパイルするものも作ってみたりしたわけですが。
現在のCPU実験のシミュレータもこれと同じ発想で作られているわけなんだけども、まあよくある手法ではあるんだなあと改めて実感。さすがにCのインタプリタをつくろうとは今まで思ってなかったけどね・・・