¿Por qué la salida de un compilador se llama código objeto?

13

Del ensayo Lenguajes de programación explicados por Paul Graham, publicado en Hackers & Painters :

El lenguaje de alto nivel que alimenta al compilador también se conoce como código fuente , y la traducción del lenguaje automático que genera se llama código objeto .

Del artículo de Wikipedia sobre el código objeto :

El código de objeto, o a veces el módulo de objeto, es lo que produce un compilador de computadora.

De una definición de 'compilador' :

Tradicionalmente, la salida de la compilación se ha denominado código de objeto o, a veces, un módulo de objeto. (Tenga en cuenta que el término "objeto" aquí no está relacionado con la programación orientada a objetos).

Entonces, ¿con qué se relaciona el término objeto?

Michiel van Oosterhout
fuente
2
Tenga en cuenta que un compilador no tiene que generar código de máquina. Es habitual tener un nivel de abstracción más bajo, de lo contrario, normalmente se llama traductor.
2
Las dos primeras personas que tuvieron que comunicarse entre sí sobre el código objeto no sabían cómo llamarlo, por lo que adoptaron un término muy genérico.
semaj
La gente buena en RetroComputing.SE podría tener una mejor idea de esto.
Roger el

Respuestas:

10

El código objeto a veces también se denomina código objetivo , porque es el resultado objetivo del proceso de traducción realizado por los compiladores. Entonces, el "código objeto" se usa como opuesto al "código fuente".

Hay otros nombres extraños en el mundo del compilador: por ejemplo, el segmento del archivo con el código binario de su programa a menudo se llama "el segmento de texto".

dasblinkenlight
fuente
1
¿Alguna idea de por qué se llama "texto"? ¿Como en el origen histórico?
nielsbot
@nielsbot: Creo que es simplemente que, en contraste con el "segmento de datos" donde se almacenan las variables, el "segmento de texto" contiene el texto original (antes de la compilación), es decir, el código del programa.
Michael Borgwardt
8

Es objeto como en "objetivo". No objetar como una "cosa".

Similar a la respuesta de dasblinkenlight sobre ser llamado "código objetivo". Es el objetivo u objetivo del compilador.

mike30
fuente
1
No estoy seguro de estar de acuerdo con eso.
Martin York
1
Me suena bien. Siempre se ha mencionado en el contexto del objetivo del compilador.
Lord Tydus
Sí, esta es la respuesta correcta. Refleja cómo funciona en una oración, donde el verbo representa el compilador (el hacedor ), el sujeto es el código fuente y el objeto es el objetivo o el resultado de esa acción (compilación). Por lo tanto, el "código de sujeto" es la fuente (que se somete a compilación, como su "sujeto"), mientras que el "código de objeto" es el objetivo (el "objetivo" de la compilación).
BarbaraKwarc 01 de
1

El código objeto se genera cuando compila un código fuente. Este código objeto aún no es ejecutable porque no tiene las bibliotecas necesarias para ejecutarse. Por lo tanto, vincula varios códigos de objetos y bibliotecas y se convierte en un ejecutable.

Según tengo entendido, " objeto " se refiere a la "cosa" que desarrollaste escribiendo ese código fuente. Puede ser un módulo, clase, función o cualquier cosa.

Mert Akcakaya
fuente
-1

El código de objeto pertenece al archivo de objeto .

El término Objeto en la informática temprana no se refiere a "objetivo" (también conocido como "objetivo"), sino que enfatiza la propiedad de los objetos para ser fácilmente reconocibles, distintos entre sí. Los objetos ordinarios son fáciles de definir y hablar, porque tienen límites. A diferencia de la niebla ...

Los objetos virtuales son contenedores de datos.

No es que te sientes y escribas un código y de alguna manera es el Código Objeto . No, se sienta a leer los requisitos de ELF, COFF, XCOFF (formatos comunes de archivos de objetos) y si su código cumple con estos requisitos, se convierte en un Código de objeto como usted dice.

JUBEI
fuente
-3

Normalmente los estudiantes entienden lenguaje de bajo nivel o un programa escrito en lenguaje de bajo nivel se llama "código objeto". Hay un problema para entender por qué la salida del compilador se llama código objeto. La salida genérica se denomina destino, que el compilador compila. Es objetivo del código fuente. No significa que el código objeto sea un programa de lenguaje de bajo nivel. Simplemente se genera el objetivo para que el objetivo se relacione con el objetivo y el objetivo del código fuente que compila el compilador y es por eso que la salida del compilador normalmente se denomina "código objeto". Porque el lenguaje bajo no es compilado por el compilador. El lenguaje de bajo nivel tiene traductor como "ensamblador" o "intérprete".

Tasawar Hussain Rathorr
fuente