2

私は、いくつかのインタープリター型プログラミング言語 (PHP、Python、Java、Smalltalk) が、コードを実行するための中間ステップとしてバイトコードを使用していることを知っています。

異なるマシンのアセンブリ オペコードの違いとして、異なる言語のインタープリターによって生成されるバイトコードの形式に違いはありますか?

また、念のため言いますが、Bytecode はインタープリター言語でしか使用できませんよね?

4

2 に答える 2

4

バイトコードは、仮想マシンによって実行される命令の総称であり、機械語は実際のプロセッサによって実行される命令の総称です。多くの異なるマシン命令セットがあるように、多くの異なるバイトコード命令セットがあります。Java バイトコードのように、一部はプラットフォームの文書化された部分です。すべての Java 仮想マシンは、定義上、まったく同じバイトコードを実行します。その他は単なる実装の詳細であり、バージョンごとに異なります。

最後の質問に答えるには: いいえ、それは正しくありません。Java はインタプリタ言語ではありません。ジャストインタイムでコンパイルされます。C# も同様です。バイトコードは、さまざまなアーキテクチャの一部にすることができます。

于 2013-11-23T17:36:58.550 に答える