Linguaggio compilato

linguaggio di programmazione fornito di un compilatore che trasforma il codice sorgente in una forma binaria eseguibile

Per linguaggio compilato si intende un linguaggio di programmazione che prevede la traduzione una tantum del codice sorgente, in genere un file di puro testo, predisposto dal programmatore in linguaggio macchina; la traduzione viene eseguita da un programma detto compilatore. Si distingue dal linguaggio interpretato, che invece è scritto in puro testo e viene tradotto, ad ogni esecuzione del codice, da un programma detto interprete.

Eseguita la traduzione in linguaggio macchina, si ottiene un file eseguibile, che - in ambiente DOS/Windows - in genere è caratterizzato dall'estensione .exe (un tempo, piccoli programmi eseguibili avevamo l'estensione .com).

Vantaggi dei linguaggi compilati

  • Il file programma compilato è immediatamente eseguito dal sistema operativo. In fase di lancio e di esecuzione, un programma compilato è quindi più veloce.
  • Il file programma compilato è generalmente autonomo. Copiato tale quale in un computer con sistema operativo identico o almeno compatibile con quello in cui è stata fatta la compilazione, non necessita di altri programmi o files per essere eseguito.
  • Il file programma compilato è praticamente immodificabile. Non è possibile modificarlo per errore, ed è molto difficile (anche se un bravo hacker ci riesce) modificarlo deliberatamente.
  • Il file programma compilato è praticamente incomprensibile all'uomo. Questo è molto utile quando il programma, per libera scelta dell'autore, è coperto da copyright. Un programma compilato può essere copiato illecitamente da chiunque, ma solo pochi riescono a "rubare le idee" che il programma contiene. E' uno dei motivi per cui in ambiro Free Software i programmi compilati vengono evitati.

Svantaggi dei linguaggi compilati

  • Durante la programmazione, ogni modifica va verificata ricompilando il progetto e poi lanciando il file eseguibile ottenuto. In termini di rapidità di debugging e di aggiornamento, la differenza con un linguaggio interpretato è notevolissima.
  • Non è possibile lanciare il programma eseguibile su un computer con un sistema operativo non compatibile.
  • L'utente medio non ha alcuna possibilità di comprendere la logica del programma. Non è quindi in grado di individuare, o di proporre, alcun miglioramento (se non giudicando dai soli risultati dell'esecuzione.
  • L'uso di soli programmi compilati mantiene l'utente finale in uno stato di sostanziale analfabetismo informatico.

Esecuzione più veloce. Ma serve veramente?

Al tempo dei primi PC, le CPU erano straordinariamente deboli e lente. Il vantaggio, in termini di velocità di esecuzione del programma, era assolutamente significativo e critico (minuti invece di secondi).

Con i PC attuali in ambiente grafico, la differenza nella velocità di esecuzione che passa fra un linguaggio compilato e un buon linguaggio interpretato rimane proporzionalmente la stessa, ma è praticamente inavvertibile (decimi di secondo invece che centesimi di secondo).

Il vero motivo per cui attualmente si utilizzano linguaggi compilati è quello di evitare che l'utente ci metta il naso; non a caso, la qiasi totalità dei programmi commerciali (compreso il Freeware, che non è Free software sono compilati e distribuiti in formato .exe. Il sorgente (il codice scritto dal programmatore) è gelosamente custodito dall'autore.

Parallelamente, molto Free Software viene scritto in linguaggio interpretato, ed in caso contrario viene liberamente distribuito anche il codice sorgente.

Alcuni esempi

Il linguaggio C è il migliore esempio di linguaggio compilato, ampiamente utilizzato sia in ambiente DOS/Windows che in ambiente UNIX/Linux/Mac.

Python é uno dei migliori, e più attuali, esempi di linguaggio interpretato; altamente consigliabile a chi voglia oggi avvicinarsi alla programmazione con un linguaggio su cui è veramente semplice fare i "primi passi", pur consentendo all'utente esperto praticamente qualsiasi cosa.


Voci correlate