Java用フロントエンドはスライド(p10)にはあるけどソースにはない

ついでに教科書にも書いてない。研究した人はいる(http://www.coins-project.org/contributions/CoinsJava/index.html)。ないのかな?
ffrontとcftontは見つけたんだけど。


ちなみにCフロントエンドはC90準拠でした。おお、ローカル変数がブロックの最初にしかかけない。ちょっと不便。
Javaフロントエンドを作るよりも、javapの出力(JavaVMニーモニック)をHIRに変換する方が正しい気がしてきた。配列がCのポインタ扱いなのでJava配列はそのままでは使えないのが残念。いや、使えるんだけど領域チェックができない。
あと、構造化例外がHIRレベルではサポートされてないような気が。読みが浅いのかな?
(追記)
研究した人も構造化例外で苦労してた。コンパイラ側が「何個目のブロックの内側か」を覚えておいてスタックフレームをunlinkするのがバイトコードレベルでの動きだったような。バイトコードに愚直にやるのが正しそう。
あと、オブジェクトシステムはlibgcjに頼ってた。libgcjかあ。あれ、data領域使いまくりなんだよなー。ま、いいや、どうせそこはスクラッチだ。