Javaを抽象マシンまたは仮想マシンとして実装することの真の利点、つまり言語を抽象マシン用の言語にコンパイルすることの利点を理解しようとしています。プラットフォームの独立性に関する限り、次の 2 つの代替実装を考えていました。
Javaを実行中のマシンのマシンコードに直接変換するインタープリターがあり、さまざまなタイプのマシン用にそのようなインタープリターの複数の実装があるだけです。
最初のオプションは空間的に効率的ではないため、ソースコードを中間言語にコンパイルするのはどうですか。これは抽象的な機械の言語ではなく、機械コードに解釈できる言語であり、そのようなインタープリターの複数の実装を持っています。
パフォーマンスが考慮されていない場合、抽象的なマシンを持つことはこれらのオプションとどのように比較されますか. 言い換えれば、Java バイト コードが仮想マシン用の言語ではなく、単なる中間言語であるとしたらどうなるでしょうか。どのような機能と利点が失われるでしょうか (パフォーマンスを除く)?