Qual è la differenza tra Linker Loader e Compiler

La principale differenza tra il loader del linker e il compilatore è che il linker combina uno o più file oggetto generati dal compilatore in un singolo file eseguibile. Nel frattempo, un programma di caricamento mette i programmi in memoria e li prepara all'esecuzione mentre il compilatore converte il codice sorgente in codice oggetto.

Un programma per computer è una raccolta di istruzioni che eseguono un compito specifico quando il computer lo esegue. Un software di sistema è un tipo di programma per computer che fornisce una piattaforma ad altri software. Linker, loader e compilatore sono tre software di sistema associati alla programmazione del computer.

Aree chiave coperte

1. Cos'è un compilatore
     - Definizione, Funzionalità
2. Che cos'è un linker
     - Definizione, Funzionalità
3. Cos'è un caricatore
     - Definizione, Funzionalità
4. Qual è la differenza tra Linker Loader e Compiler
     - Confronto tra le principali differenze

Parole chiave

Compilatore, Linker, Caricatore

Cos'è un compilatore

Un programma è un insieme di istruzioni per eseguire un determinato compito. È anche conosciuto come il codice sorgente. Il programmatore può capire il codice sorgente, ma la CPU non può capirlo. Pertanto, è necessario convertire il codice sorgente in un formato comprensibile alla macchina.

Figura 1: compilatore

Un compilatore è un software speciale che viene utilizzato in questo processo. Converte il codice sorgente in codice oggetto. Questo codice oggetto è un codice intermedio. La CPU non può eseguirlo direttamente.

Che cos'è un linker

Dopo aver convertito il codice sorgente nel codice oggetto, il linker esegue l'attività di collegamento. Prende uno o più file oggetto generati dal compilatore e li combina insieme per generare un file eseguibile.

Figura 2: Linker

Inoltre, combina i codici oggetto con le librerie. Ad esempio, in un programma C, se esiste una funzione sqrt () per calcolare la radice quadrata di un numero, il linker collega il programma con la libreria matematica. Infine, la CPU può leggere e comprendere il file eseguibile generato. Pertanto, la CPU può eseguire quel file per eseguire l'attività definita nel programma. 

Cos'è un caricatore

Un programma di caricamento individua i programmi in memoria e li prepara all'esecuzione. È un componente importante quando si avvia un programma. Include attività come la lettura del contenuto del file eseguibile e il salvataggio del file. Inoltre, esegue le attività necessarie per preparare il file eseguibile per l'esecuzione. Al termine del caricamento, il sistema operativo avvia il programma passando il controllo al codice del programma caricato.

Figura 3: Compilazione

La maggior parte dei sistemi operativi supporta caricatori per caricare programmi. La maggior parte dei sistemi ha il caricatore in memoria mentre altri che supportano la memoria virtuale hanno il caricatore in una regione di memoria paginabile.

Differenza tra caricatore linker e compilatore

Definizione

Un linker è un programma di utilità del computer che prende uno o più file oggetto generati da un compilatore e li combina in un singolo file eseguibile. Un caricatore fa parte di un sistema operativo responsabile del caricamento dei programmi in memoria. Un compilatore è un software che trasforma il codice del computer scritto in un linguaggio di programmazione (codice sorgente) in un altro linguaggio di programmazione (codice di destinazione). Quindi, questo spiega la differenza principale tra il loader del linker e il compilatore.

Funzionalità

Inoltre, un linker combina più codice oggetto e li collega con le librerie. Nel frattempo, un programma di caricamento prepara il file eseguibile per l'esecuzione mentre un compilatore trasforma il codice sorgente in codice oggetto. Pertanto, questa è la differenza tra linker loader e compilatore in termini di funzionalità. 

Conclusione

In breve, la differenza tra il caricatore linker e il compilatore è che un linker combina uno o più file oggetto generati dal compilatore in un singolo file eseguibile e un caricatore colloca i programmi in memoria e li prepara all'esecuzione mentre un compilatore converte il codice sorgente in codice oggetto.

Riferimento:

1. "Linker (Computing)." Wikipedia, Wikimedia Foundation, 6 ottobre 2018, disponibile qui.
2. "Loader (Computing)." Wikipedia, Wikimedia Foundation, 10 ottobre 2018, disponibile qui.
3. "Compilatore". Wikipedia, Wikimedia Foundation, 9 ottobre 2018, disponibile qui.

Cortesia dell'immagine:

1. "Compilatore ideale." (CC BY-SA 3.0) via Commons Wikimedia
2. "Linker" di Qef - Opera propria di uploader, basata sulla disposizione di un equivalente bitmap di Orderud (dominio pubblico) tramite Commons Wikimedia
3. "Screenshot-turbo51.com 2016-01-14 18-44-16" Di անհայտ - Aho, Sethi, Ullman, Compilatori: Principi, tecniche e strumenti, Addison-Wesley, 1986. ISBN 0-201-10088- 6 (CC BY-SA 4.0) via Commons Wikimedia