Pourquoi la sortie d'un compilateur est-elle appelée code objet?

13

Extrait de l'essai Programming Languages ​​Explained de Paul Graham, publié dans Hackers & Painters :

Le langage de haut niveau que vous alimentez le compilateur est également appelé code source et la traduction en langage machine qu'il génère est appelée code objet .

De l'article Wikipedia sur le code objet :

Le code objet, ou parfois le module objet, est ce que produit un compilateur informatique.

D'après une définition de «compilateur» :

Traditionnellement, la sortie de la compilation a été appelée code objet ou parfois module objet. (Notez que le terme "objet" ici n'est pas lié à la programmation orientée objet.)

Alors , quel est l'objet terme lié?

Michiel van Oosterhout
la source
2
Notez qu'un compilateur n'a pas à générer de code machine. Il est habituel d'avoir un niveau d'abstraction inférieur, sinon il est normalement appelé traducteur.
2
Les deux premières personnes qui devaient communiquer entre elles au sujet du code objet ne savaient pas comment l'appeler, alors elles ont adopté un terme très générique.
semaj
Les bonnes personnes de RetroComputing.SE pourraient avoir une meilleure idée de cela.
Roger

Réponses:

10

Le code objet est parfois également appelé code cible , car il est le résultat cible du processus de traduction effectué par les compilateurs. Le "code objet" est donc utilisé à l'opposé du "code source".

Il existe d'autres noms étranges dans le monde du compilateur: par exemple, le segment du fichier avec le code binaire de votre programme est souvent appelé "le segment de texte".

dasblinkenlight
la source
1
Une idée pourquoi cela s'appelle "texte"? Comme à l'origine historique?
nielsbot
@nielsbot: Je pense que c'est simplement que contrairement au "segment de données" où les variables sont stockées, le "segment de texte" contient ce qui était à l'origine (avant la compilation) du texte, à savoir le code du programme.
Michael Borgwardt
8

C'est objet comme en "objectif". Pas d'objet comme une "chose".

Semblable à la réponse de dasblinkenlight sur le fait d'être appelé "code cible". C'est la cible ou l'objectif du compilateur.

mike30
la source
1
Je ne suis pas sûr d'être d'accord avec cela.
Martin York
1
Cela m'a l'air correct. Il a toujours été mentionné dans le contexte de l'objectif du compilateur.
Lord Tydus
Oui, c'est la bonne réponse. Il reflète comment cela fonctionne dans une phrase, où le verbe représente le compilateur (l' auteur ), le sujet est le code source et l' objet est la cible ou le résultat de cette action (compilation). Ainsi, le "code sujet" est la source (qui subit la compilation, comme son "sujet"), tandis que le "code objet" est la cible (l '"objectif" de la compilation).
BarbaraKwarc
1

Le code objet est produit lorsque vous compilez un code source. Ce code objet n'est pas encore exécutable car il n'a pas de bibliothèques requises pour s'exécuter. Vous liez donc plusieurs codes objets et bibliothèques et cela devient un exécutable.

À ma connaissance, " objet " se rapporte à la "chose" que vous avez développée en écrivant ce code source. Il peut s'agir d'un module, d'une classe, d'une fonction ou de n'importe quoi.

Mert Akcakaya
la source
-1

Le code objet appartient au fichier objet .

Le terme objet au début de l'informatique ne fait pas référence à un «objectif» (ou «cible»), mais met plutôt l'accent sur une propriété d'objets facilement reconnaissables, distincts les uns des autres. Les objets ordinaires sont faciles à définir et à parler, car ils ont des limites. Contrairement au brouillard ...

Les objets virtuels sont des conteneurs de données.

Ce n'est pas que vous vous asseyez et écrivez du code et c'est en quelque sorte du code objet . Non, vous vous asseyez pour lire les exigences ELF, COFF, XCOFF (formats de fichiers d'objets communs) et si votre code correspond à ces exigences, il devient un code objet comme vous le dites.

JUBEI
la source
-3

Normalement, les étudiants comprennent un langage de bas niveau ou un programme écrit en langage de bas niveau est appelé "code objet". Il y a un problème pour comprendre pourquoi la sortie du compilateur est appelée code objet. En général, la sortie est appelée cible qui est compilée par le compilateur. C'est l'objectif du code source. Cela ne signifie pas que le code objet est un programme de langage de bas niveau. Il s'agit simplement de générer la cible, de sorte que la cible est liée à l'objectif et à l'objectif du code source qui est compilé par le compilateur et c'est pourquoi la sortie du compilateur est normalement appelée "code objet". Parce que le langage bas n'est pas compilé par le compilateur. Les langages de bas niveau ont là sur traducteur comme "Assembleur" ou "interprète".

Tasawar Hussain Rathorr
la source