かゆいところに手が届かない - Javaの砂場の上で もがき続ける -
Javaにgoto文が無い理由を理解できない。
gotoがあると、スパゲッティーを山盛りにする奴がいるからっていうのが、goto文を無くした理由として語られるところだと思います。
C言語にはgotoがありますけど、それでめちゃくちゃなプログラムを書いて問題になってる場合ってそんなに多かったんでしょうか。
トランスレータを作ってると、どうしてもgotoが欲しくなります。
それ以外にも、gotoが必要となる場面ってあると思うんですよね。
Javaって、こういうかゆいところに手が届かない部分って多い感じです。
例えばですけど、昔のFORTRANで書かれたソースを、Javaに直して使いたいなんていう需要は結構ありそうな気がするんですよね。
昔のFORTRANだとGOTOがバンバン使われてたので、それをJavaに直そうと思ったら、フローを考えて人力でやるしか無くなっちゃうんじゃないかと。
Javaにもgotoがあれば、そういう昔のソースを機械的に変換することも可能になりそうなものです。
あとは、ステートマシンの状態遷移図から、機械的にソースコードを生成しようと思ったら、ifとgotoにしちゃうのが楽だと思うんですよね。
Javaバイトコードにはgoto命令があるので、直接的にバイトコードを生成すれば、なんとかなるんですけどねー。
ちょっとしんどいですよねえ。
Javaバイトコードを生成するためのライブラリが、いくつかあるのでそういうのを使えばちょっとは楽できそうですね。
ファミコンの6502バイナリから、Javaにトランスレートする場合、gotoがあればかなり高速化できそうなんですよ。
Javaバイトコードのアセンブリ言語表現にトランスレートするっていう手も考えられますね。
Jasminっていうのが良さそうです。
http://www.hakkaku.net/articles/20090302-399