Warum heißt die Ausgabe eines Compilers Objektcode?

13

Aus dem Aufsatz Programming Languages ​​Explained von Paul Graham, veröffentlicht in Hackers & Painters :

Die Hochsprache, die Sie dem Compiler zuführen, wird auch als Quellcode bezeichnet , und die von ihm generierte Maschinensprachenübersetzung wird als Objektcode bezeichnet .

Aus dem Wikipedia-Artikel zum Objektcode :

Objektcode oder manchmal Objektmodul ist das, was ein Computer-Compiler erzeugt.

Aus einer Definition von 'Compiler' :

Traditionell wurde die Ausgabe der Kompilierung als Objektcode oder manchmal als Objektmodul bezeichnet. (Beachten Sie, dass der Begriff "Objekt" hier nicht mit objektorientierter Programmierung zusammenhängt.)

Womit ist der Begriff Objekt verbunden?

Michiel van Oosterhout
quelle
2
Beachten Sie, dass ein Compiler keinen Maschinencode generieren muss. Es ist üblich, eine niedrigere Abstraktionsebene zu haben, ansonsten wird es normalerweise als Übersetzer bezeichnet.
2
Die ersten beiden Menschen , die miteinander über kommunizieren hatten Objektcode wussten nicht , was es zu nennen , so dass sie einen sehr allgemeinen Begriff angenommen.
18.
Die guten Leute von RetroComputing.SE haben vielleicht einen besseren Einblick in diese Sache.
Roger

Antworten:

10

Objekt - Code wird manchmal auch als Zielcode, weil es das Zielergebnis des Übersetzungsprozesses durch Compiler ausgeführt ist. Daher wird "Objektcode" als Gegenteil von "Quellcode" verwendet.

Es gibt andere seltsame Namen in der Compiler-Welt: Beispielsweise wird das Segment der Datei mit dem Binärcode Ihres Programms oft als "Textsegment" bezeichnet.

dasblinkenlight
quelle
1
Irgendeine Idee, warum es "Text" heißt? Wie im historischen Ursprung?
Nielsbot
@nielsbot: Ich denke, es ist einfach so, dass im Gegensatz zum "Datensegment", in dem Variablen gespeichert sind, das "Textsegment" den ursprünglichen Text (vor dem Kompilieren) enthält, nämlich den Code des Programms.
Michael Borgwardt
8

Es ist ein Objekt wie in "objektiv". Kein Objekt als "Ding".

Ähnlich wie die Antwort von dasblinkenlight, "Zielcode" genannt zu werden. Es ist das Ziel des Compilers.

mike30
quelle
1
Ich bin mir nicht sicher, ob ich dem zustimme.
Martin York
1
Klingt für mich ungefähr richtig. Es wurde immer im Zusammenhang mit dem Ziel des Compilers erwähnt.
Lord Tydus
Ja, das ist die richtige Antwort. Es zeigt, wie es in einem Satz funktioniert, wobei das Verb den Compiler (den Macher ) darstellt, das Subjekt der Quellcode ist und das Objekt das Ziel oder Ergebnis dieser Aktion (Kompilierung) ist. Daher ist "Subjektcode" die Quelle (die als "Subjekt" kompiliert wird), während "Objektcode" das Ziel (das "Ziel" der Kompilierung) ist.
BarbaraKwarc
1

Objektcode wird erzeugt, wenn Sie einen Quellcode kompilieren. Dieser Objektcode ist noch nicht ausführbar, da für die Ausführung keine Bibliotheken erforderlich sind. Sie verknüpfen also mehrere Objektcodes und Bibliotheken und es wird eine ausführbare Datei.

Meines Erachtens bezieht sich " Objekt " auf das "Ding", das Sie durch das Schreiben dieses Quellcodes entwickelt haben. Es kann ein Modul, eine Klasse, eine Funktion oder etwas anderes sein.

Mert Akcakaya
quelle
-1

Objektcode gehört zur Objektdatei .

Der Begriff Objekt in der frühen Informatik bezieht sich nicht auf "objektiv" (auch "Ziel" genannt), sondern betont eine Eigenschaft von Objekten, die leicht zu erkennen sind und sich voneinander unterscheiden. Normale Objekte sind einfach zu definieren und zu besprechen, da sie Grenzen haben. Im Gegensatz zu Nebel ...

Virtuelle Objekte sind Datencontainer.

Es ist nicht , dass Sie sich hinsetzen und einen Code schreiben und es ist irgendwie Codeobjekt . Nein, Sie sitzen Anforderungen von ELF lesen, COFF, XCOFF (Common Object File Format) und wenn Ihr Code diese Anforderung passt es wird zu einem Objekt - Code , wie Sie sagen.

JUBEI
quelle
-3

Normalerweise verstehen die Schüler eine einfache Sprache oder ein Programm, das in einer einfachen Sprache geschrieben ist, wird "Objektcode" genannt. Es gibt ein Problem zu verstehen, warum die Ausgabe des Compilers als Objektcode bezeichnet wird. Die generelle Ausgabe wird als Ziel bezeichnet und vom Compiler kompiliert. Es ist Ziel des Quellcodes. Es bedeutet nicht, dass der Objektcode ein Low-Level-Sprachprogramm ist. Es wird lediglich das Ziel generiert, sodass sich das Ziel auf Ziel und Ziel des Quellcodes bezieht, der vom Compiler kompiliert wird. Deshalb wird die Ausgabe des Compilers normalerweise als "Objektcode" bezeichnet. Weil niedrige Sprache nicht vom Compiler kompiliert wird. Low-Level-Sprachen haben dort Übersetzer wie "Assembler" oder "Interpreter".

Tasawar Hussain Rathorr
quelle