Compilazione
Nozioni di base di C
assembler
In informatica, assembler è un programma che converte il linguaggio assembly in codice macchina. Un computer non capisce le lingue umane come l’inglese o il francese, ma si occupa di una lingua molto più semplice chiamata linguaggio binario, ma un programmatore non può scrivere l’intero programma con la sua complessità in un linguaggio binario, quindi abbiamo bisogno di un programma in grado di convertire il linguaggio scritto umano (linguaggio assembly) in linguaggio binario, questi software sono chiamati assemblatori.
In assembler, un programmatore può scrivere un programma in sequenza di istruzioni assembler, la sequenza di istruzioni assembler è nota come codice sorgente e programma sorgente.

Compiler
Un compilatore è un programma che converte una serie di istruzioni di programma in linguaggio binario, ma è più intelligente dell’interprete perché attraversa l’intero codice in una sola volta e può dire i possibili errori, limiti e intervalli, ma ciò rende il suo tempo operativo un po ‘più lento.it dipende dalla piattaforma. Aiuta a rilevare errori e ad essere visualizzato dopo aver letto l’intero codice dal compilatore.
In altre parole, possiamo dire che “i compilatori trasformano la lingua di alto livello in linguaggio binario o codice macchina solo una volta”, è noto come compilatore.

Interprete
Un interprete è anche un programma come un compilatore che converte il linguaggio assembly in binario ma un interprete passa attraverso una riga di codice alla volta e la esegue, quindi passa alla riga successiva del codice e quindi alla successiva e continua fino a c’è un errore nella riga o il codice è stato completato. È da 5 a 25 volte più veloce di un compilatore ma si ferma sulla riga in cui si verifica l’errore e poi di nuovo se anche la riga successiva ha un errore, dove come un compilatore fornisce tutto gli errori nel codice in una sola volta. Se vengono apportate modifiche a quel codice che è già stato compilato, sarà necessario compilare e aggiungere il codice modificato al codice compilato o l’intero codice dovrà essere ricompilato.
Inoltre, un compilatore salva permanentemente i codici macchina per un utilizzo futuro, ma un interprete no, ma un interprete occupa meno memoria.

L’interprete è diverso dal compilatore come,
- L’interprete è più veloce del compilatore.
- Contiene meno memoria.
- L’interprete esegue le istruzioni nel linguaggio di programmazione sorgente.
Esistono diversi tipi di interprete:
- Interprete diretto dalla sintassi
- Interprete filettato
- Interprete bytecode
linker
Per l’esecuzione di un codice è necessario includere un file di intestazione o un file salvato dalla libreria che sono predefiniti se non sono inclusi all’inizio del programma, quindi dopo l’esecuzione il compilatore genererà errori e il codice non funzionerà .
Linker è un programma che contiene uno o più file oggetto creati dal compilatore, li combina in un unico file eseguibile. Il collegamento è implementato sia in fase di caricamento che in fase di compilazione. Il tempo di compilazione è quando la lingua di alto livello diventa codice macchina e il tempo di caricamento è quando il codice viene caricato in memoria dal caricatore.
Linker è di due tipi:
1. Linker dinamico: –
- È implementato durante il runtime.
- Richiede meno memoria.
- Nel collegamento dinamico ci sono molte possibilità di errore e probabilità di fallimento.
- Il collegamento del programma memorizzato nella memoria virtuale per salvare la RAM, quindi abbiamo bisogno di una libreria condivisa
2. Linker statico: –
- È implementato durante la compilazione del programma sorgente.
- Richiede più memoria.
- Il collegamento viene implementato prima dell’esecuzione nel collegamento statico.
- È più veloce e portatile.
- Nel collegamento statico ci sono meno possibilità di errore e nessuna possibilità di errore.

caricatore
Loader è un programma che carica i codici macchina di un programma nella memoria di sistema e fa parte del sistema operativo del computer che è responsabile del caricamento del programma. È l’inizio nudo dell’esecuzione di un programma. Il caricamento di un programma comporta la lettura in memoria del contenuto del file eseguibile. Solo dopo che il programma è stato caricato, il sistema operativo avvia il programma passando il controllo al codice del programma caricato. Tutti i sistemi operativi che supportano il caricamento hanno caricatore e molti hanno caricatori permanentemente nella loro memoria.