Perché l'output di un compilatore chiamato codice oggetto?


13

Dal saggio Linguaggi di programmazione spiegato da Paul Graham, pubblicato su Hackers & Painters :

Il linguaggio di alto livello che si alimenta al compilatore è anche noto come codice sorgente e la traduzione automatica della lingua che genera è chiamata codice oggetto .

Dalla alle voci di Wikipedia codice oggetto :

Il codice oggetto, o talvolta il modulo oggetto, è ciò che produce un compilatore per computer.

Da una definizione di 'compilatore' :

Tradizionalmente, l'output della compilation è stato chiamato codice oggetto o talvolta un modulo oggetto. (Si noti che il termine "oggetto" qui non è correlato alla programmazione orientata agli oggetti.)

Quindi a cosa si riferisce il termine oggetto?


2
Si noti che un compilatore non deve generare codice macchina. È consuetudine avere un livello di astrazione inferiore, altrimenti viene normalmente chiamato traduttore.

2
Le prime due persone che hanno dovuto comunicare tra loro sul codice oggetto non sapevano come chiamarlo, quindi hanno adottato un termine molto generico.
Semaj,

Le brave persone di RetroComputing.SE potrebbero avere una visione migliore di ciò.
Roger,

Risposte:


10

Il codice oggetto viene talvolta chiamato anche codice target , in quanto è il risultato target del processo di traduzione eseguito dai compilatori. Quindi "codice oggetto" viene utilizzato come opposto di "codice sorgente".

Esistono altri nomi strani nel mondo del compilatore: ad esempio, il segmento del file con il codice binario del programma viene spesso chiamato "segmento di testo".


1
Qualche idea sul perché si chiama "testo"? Come nell'origine storica?
nielsbot

@nielsbot: Penso che sia semplicemente in contrasto con il "segmento di dati" in cui sono memorizzate le variabili, il "segmento di testo" contiene ciò che era originariamente (prima della compilazione) del testo, vale a dire il codice del programma.
Michael Borgwardt,

8

È oggetto come in "obiettivo". Non obiettare come una "cosa".

Simile alla risposta di dasblinkenlight sull'essere chiamato "codice target". È l'obiettivo o l'obiettivo del compilatore.


1
Non sono sicuro di essere d'accordo.
Martin York,

1
Sembra giusto per me. È sempre stato menzionato nel contesto dell'obiettivo del compilatore.
Lord Tydus,

Sì, questa è la risposta giusta. Riflette come funziona in una frase, in cui il verbo rappresenta il compilatore (il doer ), l' oggetto è il codice sorgente e l' oggetto è il bersaglio o il risultato di quell'azione (compilazione). Quindi il "codice oggetto" è la fonte (che subisce la compilazione, come il "soggetto"), mentre il "codice oggetto" è la destinazione (l '"obiettivo" della compilazione).
BarbaraKwarc,

1

Il codice oggetto viene prodotto quando si compila un codice sorgente. Questo codice oggetto non è ancora eseguibile perché non richiede l'esecuzione delle librerie. Quindi si collegano più codici oggetto e librerie e diventa un eseguibile.

Nella mia comprensione " oggetto " si riferisce alla "cosa" che hai sviluppato scrivendo quel codice sorgente. Può essere un modulo, una classe, una funzione o altro.


-1

Il codice oggetto appartiene al file oggetto .

Il termine Object in Early Computer Science non si riferisce a "obiettivo" (noto anche come "obiettivo"), ma sottolinea invece una proprietà degli oggetti per essere facilmente riconoscibile, distinta l'una dall'altra. Gli oggetti ordinari sono facili da definire e parlare, perché hanno dei confini. A differenza della nebbia ...

Gli oggetti virtuali sono contenitori di dati.

Non è che ti siedi e scrivi del codice ed è in qualche modo Codice oggetto . No, ti siedi a leggere i requisiti di ELF, COFF, XCOFF (formati di file oggetto comuni) e se il tuo codice soddisfa questi requisiti diventa un codice oggetto come dici tu.


-3

Normalmente gli studenti comprendono un linguaggio di basso livello o un programma scritto in un linguaggio di basso livello è chiamato "codice oggetto". C'è un problema per capire perché l'output del compilatore è chiamato codice oggetto. Generalmente l'output è chiamato target che viene compilato dal compilatore. È obiettivo del codice sorgente. Non significa che il codice oggetto sia un programma linguistico di basso livello. Basta generare il target, quindi target è correlato all'obiettivo e all'obiettivo del codice sorgente che viene compilato dal compilatore ed è per questo che l'output del compilatore viene normalmente chiamato "codice oggetto". Perché il linguaggio basso non viene compilato dal compilatore. Il linguaggio di basso livello è presente su un traduttore come "Assembler" o "interprete".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.