DX Column

2021年11月16日

#バイナリーコード – 知ったかテックワード!君もIT博士

カテゴリー:

タグ:,

バイナリーコード(Binary Code)は、2進数で表したプログラムの実行形式のこと。

現代の主なデジタルコンピュータは、0(ゼロ)と1(イチ)を組み合わせた2進数を基本にして動いている。2進数の0と1が、スイッチのオフとオンに対応しているんだ。そのため、コンピュータのプログラムは最終的に2進数に変換されて実行される。

バイナリーコードは、この2進数に変換したプログラムコードのこと。これをコンピュータが読み込んで、プログラムとして実行する。オブジェクトコードと呼ぶ場合もある。

プログラミングで利用するコードには、次のような種類がある。

  • ソースコード:プログラミング言語を用いて人間が記述するコード
  • 中間コード:ソースコードを変換して、仮想マシンで実行するためのコード
  • バイナリーコード:実行できるようソースコードを2進数に変換したコード

プログラミング言語には、プログラムを実行する方法によって次のような方式がある。

  • コンパイラ方式
  • インタープリター方式
  • 中間コード方式

コンパイラ方式は、人間が記述したプログラムのコード(ソースコード)を、コンパイラという変換プログラムで、バイナリーコードに変換して実行する。コンパイルに時間がかかるが、実行時はバイナリーコードを実行するため、高速に処理できるという特徴がある。C/C++は、コンパイラ方式のプログラミング言語になる。

インタープリター方式では、ソースコードを別のプログラムが逐次解釈しながら実行する。この解釈・実行プログラムをインタープリターと呼ぶんだ。解釈しながら実行するので、コンパイルが不要ですぐにプログラムを実行できる。途中で止めたり実行状況を確認することも簡単にできる。しかし、解釈する手間の分だけ処理速度が遅くなると言われている。BASICは、代表的なインタープリター方式のプログラミング言語だ。PythonやRuby・PHPの初期のバージョンは、インタープリター方式を採用していた。

中間コード方式は、ソースコードをバイナリコードではなく、仮想マシンのコードに変換する。そして、言語処理用の仮想マシンが中間コードを解釈しながら実行する。つまり、コンパイラ方式とインタープリター方式を組み合わせた方式なんだ。

中間コードは仮想マシンで容易に解釈・実行できるので、インタープリター方式より高速にプログラムを実行できる。また、仮想マシンを移植するだけで、新しいコンピュータ環境にも対応しやすい。これは、コンパイラを移植するよりも簡単にできると言われている。

中間コードに変換するタイミングは、いくつかの方式がある。プログラミング言語のJavaは事前に中間コードに変換して、それをJava仮想マシンで実行する。Ruby・Python・JavaScriptなどは、初回の実行時に中間コードに変換して、それを仮想マシンで実行している。

関連ページ

おまけのコント

カエル:バイナリーは「2つの」とか「2値の」といった意味だって。

ウサギ:それで、バイナリーコードが2進数のコードなんだね。

カエル:だから、ゼロとイチの2つで、何でも処理できるし通信もできる。

ウサギ:実は、ウサギもメッセージが送信できる。

カエル:そうなの?

ウサギ:白ウサギと黒ウサギが、ゼロとイチに対応している。

カエル:へーっ!

ウサギ:それを順に並べて、メッセージを表す。

カエル:いったいどんな通信をしているの?

ウサギ:まず挨拶から。「お元気ですか」「私は元気です」

カエル:それから?

ウサギ:「今日は手ごろな暖かさですね」

カエル:丁寧で上品なやり取り。

ウサギ:そして、「さようなら」

カエル:ボキャボラリが貧困すぎ。

ウサギ:それでは、次回もお楽しみに。