オブジェクトプログラムとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > デジタル大辞泉 > オブジェクトプログラムの意味・解説 

オブジェクト‐プログラム【object program】

読み方:おぶじぇくとぷろぐらむ

オブジェクトコード


オブジェクトプログラム

別名:目的プログラム
【英】object program

オブジェクトプログラムとは、ソースプログラムコンパイラ機械語翻訳したプログラムのことである。

ソースプログラムコンピューター実行することができないが、これを実行できる形式直したものがオブジェクトプログラムとなる。一般には、ソースプログラムモジュール単位のオブジェクトプログラム(オブジェクトモジュール)に変換した後、オブジェクトプログラムをどうしを結合させることで大規模なプログラム作成するという手法とられる


オブジェクトファイル

(オブジェクトプログラム から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/01/15 02:56 UTC 版)

オブジェクトファイル (object file) またはオブジェクトコード (object code) とは、コンパイラソースコードを処理した結果生成される(たいていはアセンブリ言語による assembler code file と、アセンブラによるそれのアセンブルを経由している)、コード生成の結果にしてバイナリコードを含む中間的なデータ表現のファイルである。オブジェクトファイル共有ライブラリのようにも使われることがある。名称としては、オブジェクトファイル、オブジェクトコードの他、オブジェクトプログラム(object program)[1]とも。

オブジェクトモジュールとは、ソースコードをコンパイルした結果の(静的リンクが行われる前の)機械語プログラムである。これらオブジェクトモジュールの集合体がオブジェクトファイルである。

中身は、機械語バイナリと、異なるモジュール間の相互参照を解決するシンボルテーブルリロケーションテーブル、スタック巻き戻し情報、コメント、さらにリンクまたはデバッグに使用されるメタデータが含まれる場合もある。

オブジェクトファイル群をリンクすることにより、最終的な実行ファイルライブラリが作成される。オブジェクトファイルのほとんどは機械語(コンピュータのCPUが直接実行できるコード)であり、オブジェクトファイルフォーマットコンパイラアセンブラが生成するオブジェクトファイルのファイルフォーマットである。

概要

オブジェクトファイルにはオブジェクトコードだけでなく、リンカ実行ファイルライブラリを作成するときに使用するリロケーション情報、プログラム内のシンボル情報、デバッグ情報などが含まれる。

オブジェクトファイルフォーマットには様々なものがある。本来各コンピュータはそれぞれオリジナルのフォーマットを持っていたが、UNIXや他の移植性のあるオペレーティングシステムが普及するに従ってCOFFELFなどのフォーマットが定義され、様々なシステムで使われるようになった。リンカの入力と出力に同じファイルフォーマットを使うのが一般的であるため、オブジェクトファイルフォーマットは実行ファイルフォーマットでもある[2]:p.16

オブジェクトファイルフォーマットの設計や選択はシステム全体の設計に関わる問題である。リンカの性能に直接関係してくるため、プログラム開発の効率に影響する。また、同じフォーマットを実行ファイルでも使用する場合、プログラムの起動時間にも影響する。多くのオブジェクトファイルフォーマットでは同種のデータを集めた形式でブロック化されており、仮想記憶システムで必要に応じてページ単位にロードすることができ、そのまま実行可能である。

最も単純なオブジェクトファイルフォーマットとしてMS-DOSCOMフォーマットがある。COMファイルは固定アドレスにロードされるバイト列から構成されている。他のフォーマットは内部構造があり、何ページにも渡る仕様書でその構造が規定されている。

セグメント

殆どの種類のオブジェクトファイル形式は、一般的なメモリ管理の手法のひとつである "メモリセグメント" という用語に由来する "セグメント" と呼ばれる単位でデータを分割して保持しており、それぞれデータの種類が異なる。プログラムがローダによってメモリに読み込まれると、ローダはメモリの複数の領域をプログラムに割り当てる。

典型的なオブジェクトファイルフォーマットでサポートされるデータ種別は以下の通りである。

  • ヘッダー情報 (ディスクリプティブ/コントロール情報)
  • コードセグメント ("テキストセグメント"、実行形式コード)
  • データセグメント (初期値を持つ静的変数)
  • 読み取り専用データセグメント (RODATA、初期値を持たない静的定数)
  • BSS セグメント (初期値を持たない変数や定数といった静的データ)
  • リンキングのための外部定義と参照情報
  • リロケーション情報
  • ダイナミックリンク情報
  • デバッグ情報

異なるオブジェクトファイル内のセグメントはセグメントの定義で決められた規則に従いリンカが結合する。例えば、DOSでは特別なセグメントの名前を決めたり結合されるべきかを定義した規則が存在する[3]


デバッグ情報はCOFFなどのフォーマットでは必須の部分だが、stabs英語版DWARFなどのフォーマットでは半ば独立したフォーマットとなっている。

GNUプロジェクトBFDライブラリは様々なフォーマットのオブジェクトファイルについての共通のAPIを提供する。

フォーマット

主なオブジェクトファイルフォーマットを以下に列挙する。

脚注

  1. ^ J.DONOVAN, JOHN (1972). systems programming. pp. 4,149. ISBN 0-07-085175-1 
  2. ^ IBM Corporation (1973). IBM OS Linkage Editor and Loader. http://www.bitsavers.org/pdf/ibm/360/os/R21.7_Apr73/GC28-6538-10_Linkage_Editor_Rel_21_Apr73.pdf 
  3. ^ Irvine, Kip R. (1993), Assembly language for the IBM-PC (2nd ed.), New York: Macmillan, ISBN 0-02-359651-1 

関連項目

外部リンク


「オブジェクトプログラム」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「オブジェクトプログラム」の関連用語

オブジェクトプログラムのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



オブジェクトプログラムのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【オブジェクトプログラム】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのオブジェクトファイル (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS