本文へスキップ

バイトコードとは?

ばいとこーど

バイトコードとは、ソースコードをコンパイルして生成される中間表現で、仮想マシン(VM)上で実行されることを前提とした命令セットです。

バイトコード(Bytecode)とは、プログラミング言語のソースコードコンパイルした結果として生成される中間的な命令列のことです。ネイティブな機械語(CPUが直接実行するバイナリ)とは異なり、特定のCPUアーキテクチャに依存せず、仮想マシン(VM)やインタプリタによって解釈・実行されます。

バイトコードの特徴と仕組みは次の通りです。コンパイラがソースコードを解析し、プラットフォームに依存しない中間命令(バイトコード)を生成します。実行時には、各プラットフォーム向けに用意されたVMがバイトコードを解釈するか、JIT(Just-In-Time)コンパイラがネイティブコードへ変換してから実行します。この設計により「一度書けばどこでも動く(Write Once, Run Anywhere)」という移植性が実現します。

代表的なバイトコード実行環境として以下が挙げられます。

  • Java仮想マシン(JVM):Javaソースコードは.classファイル(バイトコード)にコンパイルされ、JVM上で実行される
  • Python(CPython):.pyファイルは.pycファイル(バイトコード)にコンパイルされてから実行される
  • WebAssembly(Wasm):ブラウザ上で動作するバイトコード形式
  • .NET CLR(共通言語ランタイム):C#などをIL(中間言語)にコンパイルして実行

バイトコードはソースコードより高速に解釈でき、移植性とある程度の実行効率を両立する手段として広く採用されています。また、ソースコードを配布しないでも動作させられるため、知的財産保護の観点でも利用されることがあります。

使い方・例文

Javaプログラムを「javac Hello.java」でコンパイルすると「Hello.class」というバイトコードファイルが生成され、Windowsでも macOSでも「java Hello」コマンドで同じように実行できます。これがバイトコードによる移植性の典型例です。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語