La differenza fondamentale tra il programma sorgente e il programma oggetto è che il programma sorgente è un programma leggibile scritto da un programmatore mentre il programma oggetto è un programma eseguibile dalla macchina creato compilando un programma sorgente.
I programmi sorgente possono essere compilati o interpretati per l'esecuzione. I decompilatori aiutano a riconvertire i programmi oggetto nei loro programmi sorgente originali. È importante notare che i termini programma sorgente e programma oggetto sono usati come termini relativi. Se prendi un programma di trasformazione del programma (come un compilatore), quello che entra è un programma sorgente e quello che ne esce è un programma oggetto. Pertanto, un programma oggetto prodotto da uno strumento può diventare un file sorgente per un altro strumento.
Cos'è il programma sorgente?
Il programmatore scrive il programma sorgente usando un linguaggio di livello superiore. Pertanto, è facilmente leggibile dagli esseri umani. I programmi sorgente di solito contengono nomi di variabili significativi e commenti utili per renderlo più leggibile. Una macchina non può eseguire direttamente un programma sorgente. Un compilatore aiuta a trasformare il programma sorgente in codice eseguibile da eseguire dalla macchina. In alternativa, è utilizzare un interprete. Esegue un programma sorgente riga per riga senza precompilazione.
Figura 01: Un programma sorgente
Visual Basic è un esempio di linguaggio compilato, mentre Java è un esempio di linguaggio interpretato. I file di origine di Visual Basic (file.vb) vengono compilati in codice.exe, mentre i file di origine Java (file.java) vengono prima compilati (utilizzando il comando javac) in bytecode (un codice oggetto contenuto nei file.class) e quindi interpretati utilizzando il interprete java (usando il comando java). Quando le applicazioni software vengono distribuite, in genere non includeranno i file di origine. Tuttavia, se l'applicazione è open source, anche il codice sorgente viene distribuito e l'utente può vedere e modificare anche il codice sorgente.
Cos'è il programma a oggetti?
Il programma Object è solitamente un file eseguibile dalla macchina, che è il risultato della compilazione di un file sorgente usando un compilatore. Oltre alle istruzioni della macchina, possono includere informazioni di debug, simboli, informazioni sullo stack, riposizionamento e informazioni di profilatura. Poiché contengono istruzioni in codice macchina, non sono facilmente leggibili dall'uomo. Ma a volte, i programmi oggetto si riferiscono a un oggetto intermedio tra i file sorgente ed eseguibili.
Gli strumenti noti come linker aiutano a collegare un insieme di oggetti in un eseguibile (es. linguaggio C). Come accennato in precedenza, i file.exe e i file bytecode sono file oggetto prodotti utilizzando rispettivamente Visual Basic e Java. I file.exe vengono eseguiti direttamente sulla piattaforma Windows mentre i file bytecode richiedono un interprete per l'esecuzione.
La maggior parte delle applicazioni software sono distribuite solo con l'oggetto o con i file eseguibili. È possibile riconvertire l'oggetto oi file eseguibili nei suoi file di origine originali mediante decompilazione. Ad esempio, gli strumenti di decompilazione possono decompilare i file java.class (bytecode) nei suoi file.java originali.
Qual è la differenza tra programma sorgente e programma oggetto?
Il programma sorgente è un programma leggibile dall'uomo scritto da un programmatore. È scritto in linguaggi di livello superiore come Java o C. Pertanto, un programma sorgente è leggibile dall'uomo. Non è comprensibile dalla macchina.
D' altra parte, il programma Object è un programma eseguibile dalla macchina creato dopo aver compilato un programma sorgente. Contiene linguaggi di livello inferiore come assembly o codice macchina. Pertanto, il programma oggetto non è leggibile dall'uomo. È comprensibile dalla macchina.
Riepilogo – Programma sorgente vs Programma oggetto
La differenza tra il programma sorgente e il programma oggetto è che il programma sorgente è un programma leggibile dall'uomo scritto da un programmatore mentre il programma oggetto è un programma eseguibile dalla macchina creato compilando un programma sorgente.