「オブジェクトファイル」の版間の差分

削除された内容 追加された内容
m ボット: 言語間リンク 21 件をウィキデータ上の (d:Q157965 に転記)
Greeneyes3 (会話 | 投稿記録)
m編集の要約なし
1行目:
'''オブジェクトファイル''' (Object{{en|object Filefile}}) または'''オブジェクトコード''' (Object{{en|object Codecode}}) とは、[[コンパイラ]]が[[ソースコード]]を処理した結果生成される[[中間言語|中間的なコード]]表現である。オブジェクトファイルの内容は[[バイナリ]]であり、コンパクトで構文解析済みのコードである。オブジェクトファイル群を[[リンケージエディタ|リンク]]することによって最終的な[[実行ファイル]]や[[ライブラリ]]が作成される。オブジェクトファイルのほとんどは[[機械語]]である(コンピュータの[[CPU]]が直接実行できるコード)。'''オブジェクトファイルフォーマット'''は[[コンパイラ]]や[[アセンブリ言語|アセンブラ]]が生成するオブジェクトファイルの[[ファイルフォーマット]]である。
 
== 概要 ==
オブジェクトファイルにはオブジェクトコードだけでなく、[[リンケージエディタ|リンカ]]が[[実行ファイル]]や[[ライブラリ]]を作成するときに使用する[[リロケータブルバイナリ|リロケーション]]情報、プログラム内のシンボル情報、[[デバッグ]]情報などが含まれる。
 
オブジェクトファイルフォーマットには様々なものがある。本来各コンピュータはそれぞれオリジナルのフォーマットを持っていたが、[[UNIX]]や他の移植性のあるオペレーティングシステムが普及するに従って[[COFF]]や[[Executable and Linkable Format|ELF]]などのフォーマットが定義され、様々なシステムで使われるようになった。リンカの入力と出力に同じファイルフォーマットを使うのが一般的であるため、オブジェクトファイルフォーマットは実行ファイルフォーマットでもある。
 
オブジェクトファイルフォーマットの設計や選択はシステム全体の設計に関わる問題である。[[リンカ]]の性能に直接関係してくるため、プログラム開発の効率に影響する。また、同じフォーマットを実行ファイルでも使用する場合、プログラムの起動時間にも影響する。多くのオブジェクトファイルフォーマットでは同種のデータを集めた形式でブロック化されており、[[仮想記憶]]システムで必要に応じてページ単位にロードすることができ、そのまま実行可能である。
 
最も単純なオブジェクトファイルフォーマットとして[[MS-DOS]]の[[COMファイル|COM]]フォーマットがある。COMファイルは固定アドレスにロードされるバイト列から構成されている。他のフォーマットは内部構造があり、何ページにも渡る仕様書でその構造が規定されている。
62行目:
* [http://www.iecc.com/linker/ ''Linkers and Loaders''] John R. Levine(Morgan Kaufmann Publishers, 2000)
 
[[Category:ファイル{{デフォルトソマッ|:おふしえくとふあいる]]}}
[[Category:ファイルフォーマット]]
[[Category:ライブラリ (プログラミング)|おふしえくとふあいる]]
[[Category:オブジェクトファイルフォーマット|*]]