コンパイラの出力がオブジェクトコードと呼ばれるのはなぜですか?


13

Hackers&Paintersに掲載されているPaul Grahamによるエッセイプログラミング言語から:

コンパイラに供給する高レベル言語はソースコードとも呼ばれ 、生成される機械語翻訳はオブジェクトコードと呼ばれます

オブジェクトコードに関するWikipediaの記事から:

オブジェクトコードまたはオブジェクトモジュールは、コンピューターコンパイラが生成するものです。

「コンパイラ」の定義から:

従来、コンパイルの出力はオブジェクトコードまたはオブジェクトモジュールと呼ばれていました。(ここでの「オブジェクト」という用語は、オブジェクト指向プログラミングとは関係がないことに注意してください。)

では、用語オブジェクト何に関連していますか?


2
コンパイラはマシンコードを生成する必要がないことに注意してください。抽象レベルを低くするのが慣例であり、そうでない場合は通常、トランスレーターと呼ばれます。

2
オブジェクト コードについて互いに通信しなければならなかった最初の2人は、それを何と呼ぶか​​わからなかったため、非常に一般的な用語を採用しました。
semaj

RetroComputing.SEの優れた人々は、これについてより良い洞察を持っているかもしれません。
ロジャー

回答:


10

オブジェクトコードは、コンパイラによって実行される変換プロセスのターゲット結果であるため、ターゲットコードとも呼ばれることがあります。したがって、「オブジェクトコード」は「ソースコード」の反対として使用されます。

コンパイラの世界には他にも奇妙な名前があります。たとえば、プログラムのバイナリコードを含むファイルのセグメントは、多くの場合「テキストセグメント」と呼ばれます。


1
任意のアイデアなぜそれが「テキスト」と呼ばれていますか?歴史的起源のように?
-nielsbot

@nielsbot:変数が保存される「データセグメント」とは対照的に、「テキストセグメント」には元々(コンパイル前)のテキスト、つまりプログラムのコードが含まれていると思います。
マイケルボルグ

8

「客観的」のようなオブジェクトです。「物」として反対しない。

「ターゲットコード」と呼ばれることに関するdasblinkenlightの答えに似ています。コンパイラのターゲットまたは目的です。


1
私はそれに同意しません。
マーティンヨーク

1
私にとって正しい音。コンパイラの目的のコンテキストで常に参照されています。
主Tydus

はい、これは正しい答えです。動詞がコンパイラー(doer)を表し、サブジェクトがソースコードであり、オブジェクトがそのアクションのターゲットまたは結果(コンパイル)である場合のセンテンスでの動作を反映します。したがって、「サブジェクトコード」はソース(コンパイルを「サブジェクト」として受ける)であり、「オブジェクトコード」はターゲット(コンパイルの「オブジェクティブ」)です。
バーバラクワーク

1

ソースコードをコンパイルすると、オブジェクトコードが生成されます。このオブジェクトコードは、実行に必要なライブラリがないため、まだ実行できません。したがって、複数のオブジェクトコードとライブラリをリンクすると、実行可能になります。

私の理解では、「オブジェクト」は、そのソースコードを記述することで開発した「もの」に関連しています。モジュール、クラス、関数、その他何でもかまいません。


-1

オブジェクトコードObject Fileに属します

初期のコンピュータサイエンスにおけるオブジェクトという用語は、「客観的」(別名「ターゲット」)を指すのではなく、オブジェクトのプロパティを容易に認識できるように強調し、互いに区別します。通常のオブジェクトは境界を持っているため、定義と説明が簡単です。霧とは異なり...

仮想オブジェクトはデータのコンテナです。

それはあなたが座っていくつかのコードを書くことではなく、何とかオブジェクトコードです。いいえ、ELF、COFF、XCOFF(一般的なオブジェクトファイル形式)の読み取り要件に座って、コードがこれらの要件に適合する場合、あなたが言うようにオブジェクトコードになります。


-3

通常、学生は低レベル言語を理解するか、低レベル言語で書かれたプログラムは「オブジェクトコード」と呼ばれます。コンパイラの出力がオブジェクトコードと呼ばれる理由を理解するために問題があります。通常、出力はターゲットと呼ばれ、コンパイラによってコンパイルされます。ソースコードの目的です。オブジェクトコードが低レベル言語プログラムであるという意味はありません。ターゲットが生成されるだけなので、ターゲットは、コンパイラーによってコンパイルされるソースコードの目的と目的に関連します。そのため、コンパイラーの出力は通常「オブジェクトコード」と呼ばれます。低言語はコンパイラによってコンパイルされないためです。低レベル言語には、「アセンブラー」や「インタープリター」などの翻訳者がいます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.