先頭へ戻る

オブジェクトファイル | Programming Place Plus 用語集

Programming Place Plus トップページ -- 用語集

先頭へ戻る

名称


解説

ソースコードを変換して得られた機械語のコードを、ファイルとしてまとめたものです。

オブジェクトファイルは、機械語の形式になっているので、コンピュータが直接解釈できます。ただし、実行できるかどうかは場合によります。オブジェクトファイルの中でも、そのまま実行可能であるものを、実行可能ファイルと呼びます。

たとえば、C言語のほとんどの処理系では、1つ1つのソースファイルコンパイルすることで、それぞれに対応するオブジェクトファイルを得られます。この時点では実行することはできません。そこで、リンカを使ってオブジェクトファイルを結合(リンク)して、1つの実行可能ファイルを生成します。

オブジェクトファイルには、ソースコードを変換したコードのほかにも、最適化のための情報や、デバッグを助けるための情報といった追加情報が書き込まれていることがあります。

最適化のための情報とは、たとえば、リンクの過程で最適化を行うための情報です。前述した生成手順の例のように、オブジェクトファイルは1つ1つのソースファイルに対応したものであって、互いのことは関知しません。しかし、グローバル変数関数呼び出しのように、互いを行き来するようなコードは当然あり得ます。そのため、互いのことをより多く知っていれば、その情報を利用した高度な最適化を実現できる場合があります。このようなプログラム全体を巻き込んだグローバルな最適化を行うタイミングとして、リンクの過程が利用でき、その際に使う情報をコンパイルのときに、オブジェクトファイルに埋め込んでおくことがあります。

デバッグを助けるための情報とは、たとえば、変数や関数などの名前(識別子)やなどの情報です。プログラムの実行のためには、こういった情報は必要ありませんが、デバッグ時には助けになります。デバッガで変数のを確認するとき、変数名の一覧が表示できているのは、このような情報が埋め込まれているからです(あるいは、オブジェクトファイル以外のファイルとして生成している場合もある)。


参考リンク


更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー