オブジェクトコード・ネイティブコード・バイナリコードの違い
ただし、コンパイラによって変換されたコードをオブジェクトコード、特定のCPU(マイクロプロセッサ)専用に変換されたコードのことをネイティブコードと呼ぶことが多いです。
オブジェクトコードとは
オブジェクトコードとは、プログラミング言語で書かれたソースコードをコンピュータのCPU(マイクロプロセッサ)が直接実行できる形式に変換したコードのことです。
プログラミング言語は人間が理解しやすいように作れた言語のため、プログラミング言語で記述した「ソースコード」をコンピュータは理解できません。そのためコンパイラなどを使い、コンピュータが理解できる形式(機械語)に変換してから実行します。
次の図は、コンパイラのイメージ例です。
コンパイラは、プログラミング言語で書かれた「ソースコード」を入力とし、コンピュータが解釈できる機械語(オブジェクトコード)を生成します。
このように「ソースコード」をコンピュータが直接実行できる形式に変換したコードのことを「オブジェクトコード」といいます。
スポンサーリンク
ネイティブコードとは
ネイティブコードは、オブジェクトコードと同じ意味で、コンピュータのCPU(マイクロプロセッサ)が直接実行できる形式のコードです。
コンピュータが理解できる言語は機械語です。機械語はCPUのアーキテクチャごとに異なるため、アーキテクチャが異なるCPUでは同じ機械語を使用できません。(ネイティブコードとオブジェクトコードは機械語で書かれている)
オブジェクトコードとネイティブコードは同じ意味の言葉(どちらもコンピュータが直接解釈・実行できる形式のコード)ですが、コンパイラなどによって変換されたコードをオブジェクトコードと呼ぶのに対して、ネイティブコードは、特定のCPU専用に変換されたコードを指す言葉として使われています。
バイナリコードとは
バイナリコードとは、コンピュータのCPU(マイクロプロセッサ)が理解できる2進数で表現されたコードのことです。
コンピュータが扱う最小単位は「ビット」(bit)です。1ビットで表現できる数字は、「0」と「1」の2つだけであり、この「0」と「1」という2個の数字で数をあらわすのが2進数です。
コンピュータは、この「0」と「1」の集まりしか理解できません。そのためコンピュータでは、2進数の集まりでデータを表現します。
この2進数で表現されたコードのことを「バイナリコード」といいます。
コンピュータが直接実行できる形式に変換したコードのことを、オブジェクトコードやネイティブコードと呼び、どちらも2進数で表現されたバイナリコードです。
まとめ
- オブジェクトコード:コンパイラなどによって変換されたコード
- ネイティブコード:特定のCPU専用に変換されたコード
- バイナリコード:2進数で表現されたコード
※すべてコンピュータ(CPU)が直接理解できるコードであり、ほとんど同じ意味の言葉。