バイナリコード
注記
このページ「バイナリコード」は、「 オブジェクトコード 」のエイリアス(別名ページ)です。
用語
「オブジェクトコード」(object code)/「バイナリコード」(binary code)についての説明です。
説明
![生徒 student](./img/chara/student_80.webp)
オブジェクトコードとは何ですか?
![先生 teacher](./img/chara/teacher_80.webp)
![生徒 student](./img/chara/student_80.webp)
オブジェクトコードとソースコードの違いは何ですか?
![先生 teacher](./img/chara/teacher_80.webp)
オブジェクトコードとは、プログラムがコンピュータに実行される形式の一つで、ソースコードから変換して生成されます。一方、ソースコードはプログラムを記述するためのテキスト形式で、人間が理解しやすい形式で書かれています。つまり、オブジェクトコードはコンピュータが実行できる形式であり、ソースコードは人間が読み書きする形式であると言えます。
![生徒 student](./img/chara/student_80.webp)
オブジェクトコードはどのように生成されるのですか?
![先生 teacher](./img/chara/teacher_80.webp)
![生徒 student](./img/chara/student_80.webp)
オブジェクトコードと機械語の違いは何ですか?
![先生 teacher](./img/chara/teacher_80.webp)
オブジェクトコードと機械語は、非常に近い関係にあります。オブジェクトコードは、機械語による命令を並べたプログラムであり、コンピュータの中央処理装置(CPU/マイクロプロセッサ)が機種ごとに直接実行できるようになっています。つまり、オブジェクトコードは機械語に非常に近い形式で記述されていると言えます。
![生徒 student](./img/chara/student_80.webp)
なるほど
![先生 teacher](./img/chara/teacher_80.webp)
しかし、オブジェクトコードは、機械語よりも抽象度が高く、より人間に理解しやすい形式で書かれています。また、機械語はCPUごとに異なる命令セットを持っており、直接人間が記述することは非常に困難です。オブジェクトコードは、ソースコードを変換することで生成されるため、プログラマが直接機械語を書く必要はありません。
![生徒 student](./img/chara/student_80.webp)
オブジェクトコードを変換することをコンパイルと言うんですね。それとリンクとは何ですか?
![先生 teacher](./img/chara/teacher_80.webp)
そうですね。オブジェクトコードを生成する過程を「コンパイル」と言います。また、複数のオブジェクトコードを結合することを「リンク」と言います。リンカというソフトウェアを使用することで、複数のオブジェクトコードを一つの実行可能なプログラムに結合することができます。例えば、複数のソースコードからそれぞれオブジェクトコードを生成し、それらを結合して一つのプログラムにすることができます。
![生徒 student](./img/chara/student_80.webp)
オブジェクトコードはどのように実行されるのですか?
![先生 teacher](./img/chara/teacher_80.webp)
オブジェクトコードは、コンピュータのCPUが直接実行することができます。プログラムを実行する際には、オブジェクトコードがメモリに読み込まれ、CPUが命令を順番に実行していきます。オブジェクトコードは機械語に非常に近い形式で書かれているため、CPUが理解しやすく、高速に実行することができます。
まとめ
「オブジェクトコード」(object code)/「バイナリコード」(binary code)とは、プログラムの一つの形式で、機械語に近い形式で書かれています。
ソースコードからコンパイルすることで生成され、機械語による命令を並べたプログラムです。
CPUが直接実行できるようになっており、高速で実行することができます。
オブジェクトコードは、ソースコードを直接書くことはできず、コンパイルを経て生成されます。
複数のオブジェクトコードを結合することで、一つの実行可能なプログラムを作ることができます。