結局どうなったか

COINSとは全く無関係(に、なるようにわざわざモジュール化して作った部分)だけで完結してしまい、HIRへの変換やらLIRへの変換やらをやらずにいきなりC言語に直す羽目に。
おや? なぜかクラスファイルを食わせるとARMのアセンブラソースをはき出す謎のJavaコンパイラの目標はどこへ・・。


ちなみに、HIRへの変換やJavaバイトコードの解釈よりもオブジェクトエンジンの方がずーーーーーっと大変でした。オブジェクトエンジンに比べたらバイトコードインタプリタなんかあくびが出るほど簡単。こんなのを地道にやってるなんてCLRやJavaVMは偉いわ。というか、CLRやJavaVM上でいろんな言語を動かしたがる理由がよくわかりました。既存言語のトランスレータ作るだけなら簡単なのね。なるほど。型システムをVM側が持っているだけでこんなに楽できるとは(というよりも、「型がないマシン語で無理矢理オブジェクト指向」がこんなに大変とは、というべきかも)。
型システムを持つVMじゅーよー。そんなものCPUレベルでサポートしようよ(さすがに、それは無理(^^;))。