Concetto in definizione ABC
Varie / / July 04, 2021
Di Guillem Alsina González, nel sett. 2017
Come possiamo andare d'accordo con qualcuno con cui non abbiamo una lingua in comune? Attraverso un traduttore. Questa funzione di traduzione è ciò che esegue un compilatore diventare codice codice sorgente eseguibile scritto da un programmatore.
La compilazione è il processo mediante il quale un programma scritto in un linguaggio di alto livello è tradotto nel codice macchina utilizzato da una certa architettura del computer, per la sua esecuzione diretto.
Pertanto, e secondo la spiegazione che abbiamo appena proposto, questo sistema richiede la scelta di a architettura destinazione, che può essere diversa in ogni caso e ci costringerà a compilare separatamente per ciascuna delle diverse architetture in cui vogliamo che il nostro programma venga eseguito.
Così, ad esempio, possiamo avanzare su un certo programma per l'architettura x86 a 32 bit, x86 a 64 bit, il PowerPC o l'ARM differenziando anche 32 e 64 bit, a seconda del tipo di dispositivo in cui vogliamo eseguirlo.
Inoltre, dobbiamo anche tenere conto dei diversi sistemi operativi, anche se stiamo lavorando per la stessa piattaforma hardware, poiché ognuno ha un modo diverso di interagire con la macchina fisica
Prendiamo come esempio la piattaforma x86 a 64 bit. Potremmo voler compilare per finestre, GNU/Linux o macOS, o per ognuno di essi, il che implica tre processi di compilazione separati.
A volte, questo ci costringe a modificare leggermente il codice sorgente, spesso mantenendo tre versioni separate (o più, a seconda di caso) affinché possano interagire correttamente con le peculiarità e differenze della piattaforma di destinazione.
Il processo di compilazione segue una serie di passaggi, come il rilevamento di errori sintattici nel codice sorgente, quindi a pre-elaborato per conoscere le risorse di cui il programma ha bisogno, e infine il collegamento con le biblioteche e le risorse necessarie per il suo esecuzione.
In questo modo, a file eseguibile contenente all risorse necessarie per la sua esecuzione e le istruzioni necessarie per accedere a risorse esterne, come librerie di codici condivise (condivisa).
Il processo di compilazione viene eseguito con uno o più strumenti specifici (compilatore), anche se è comune che questo venga integrato negli ambienti di sviluppo (IDE), facilitando così il suo uso.
Ogni lingua di programmazione Possiede un proprio compilatore, anche se per molto tempo il compilatore corrispondente a un linguaggio e un ambiente è stato in grado di generare eseguibili per varie piattaforme. Software diverso.
C'è un'opzione alternativa al processo di compilazione? Sì, e sono lingue interpretate.
Le lingue interpretate sono quelle tradotte in fase di esecuzione e non compilate.
Pertanto, il loro codice sorgente è sempre disponibile e ciò di cui hanno bisogno è che nel sistema operativo su cui vengono eseguiti, c'è un interprete.
Evitando il processo di compilazione, se l'interprete è disponibile per più piattaforme, sarà possibile eseguire il programma direttamente su ognuno di essi, solitamente senza modifiche.
Altro messa a fuoco alternative, a metà tra linguaggi compilati e linguaggi interpretati, sono quelli che richiedono una macchina virtuale per funzionare, ad esempio Java.
I linguaggi di programmazione che funzionano su un livello di virtualizzazione (macchina virtuale) richiedono un processo intermedio simile a quello di compilazione, ma che risulta in un codice non direttamente eseguibile, anche se più ottimizzato di quello eseguito da un linguaggio interpretato.
In questi casi si richiede un processo simile nella forma a quello della compilazione, ma che dà un risultato diverso e che richiede comunque, comunque, il installazione di una tempo di esecuzione nel sistema operativo in cui vogliamo eseguire il nostro programma.
Foto: Fotolia - Alexander Pokusay / Onot
Argomenti in compilazione