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つで、何でも処理できるし通信もできる。
ウサギ:実は、ウサギもメッセージが送信できる。
カエル:そうなの?
ウサギ:白ウサギと黒ウサギが、ゼロとイチに対応している。
カエル:へーっ!
ウサギ:それを順に並べて、メッセージを表す。
カエル:いったいどんな通信をしているの?
ウサギ:まず挨拶から。「お元気ですか」「私は元気です」
カエル:それから?
ウサギ:「今日は手ごろな暖かさですね」
カエル:丁寧で上品なやり取り。
ウサギ:そして、「さようなら」
カエル:ボキャボラリが貧困すぎ。
ウサギ:それでは、次回もお楽しみに。