Svantaggi e vantaggi dei compilatori

...

I programmatori usano i compilatori per trasformare il codice sorgente in codice macchina.

I computer leggono i comandi da un linguaggio macchina scritto in binario, cioè lunghe stringhe di zero e uno. Mentre i computer possono leggere questo linguaggio in modo efficiente, la maggior parte dei programmatori umani non può. Ecco perché i programmatori lavorano in un linguaggio di programmazione che possono capire, che poi traducono nel linguaggio macchina che il computer può capire. Mentre molte lingue più recenti utilizzano interpreti che traducono dall'uno all'altro durante l'esecuzione del programma, i più vecchi i linguaggi di programmazione utilizzavano compilatori che eseguivano questa traduzione interamente prima che il computer eseguisse il programma.

Vantaggio: autonomo ed efficiente

Uno dei principali vantaggi dei programmi compilati è che sono unità autonome pronte per essere eseguite. Poiché sono già compilati in binari in linguaggio macchina, non esiste una seconda applicazione o pacchetto che l'utente deve mantenere aggiornato. Se un programma viene compilato per Windows su un'architettura x86, l'utente finale necessita solo di un sistema operativo Windows in esecuzione su un'architettura x86. Inoltre, un pacchetto precompilato può essere eseguito più velocemente di un interprete che compila il codice sorgente in tempo reale.

Video del giorno

Svantaggio: hardware specifico

Poiché un compilatore traduce il codice sorgente in un linguaggio macchina specifico, i programmi devono essere compilato specificamente per OS X, Windows o Linux, nonché specificamente per 32 bit o 64 bit architetture. Per un programmatore o un'azienda di software che cerca di far conoscere un prodotto al pubblico più ampio possibile, ciò significa mantenere più versioni del codice sorgente per la stessa applicazione. Ciò si traduce in più tempo speso per la manutenzione del codice sorgente e ulteriori problemi quando vengono rilasciati gli aggiornamenti.

Vantaggio: ottimizzazione hardware

Sebbene essere bloccati in un pacchetto hardware specifico abbia i suoi lati negativi, la compilazione di un programma può anche aumentarne le prestazioni. Gli utenti possono inviare opzioni specifiche ai compilatori riguardanti i dettagli dell'hardware su cui verrà eseguito il programma. Ciò consente al compilatore di creare codice in linguaggio macchina che fa l'uso più efficiente dell'hardware specificato, rispetto al codice più generico. Ciò consente inoltre agli utenti avanzati di ottimizzare le prestazioni di un programma sui propri computer.

Svantaggio: tempi di compilazione

Uno degli svantaggi di avere un compilatore è che deve effettivamente compilare il codice sorgente. Mentre i piccoli programmi codificati da molti programmatori alle prime armi richiedono una quantità di tempo insignificante per la compilazione, le suite di applicazioni più grandi possono richiedere una quantità significativa di tempo per la compilazione. Quando i programmatori non devono fare altro che aspettare che il compilatore finisca, questo tempo può aumentare, specialmente durante la fase di sviluppo, quando il codice deve essere compilato per testare la funzionalità e risolvere i problemi glitch.