Linguaggi di programmazione: compilati ed interpretati.

Transcript

Linguaggi di programmazione: compilati ed interpretati.
Linguaggi di programmazione: compilati ed interpretati.
Il “codice sorgente” di un programma è l’insieme delle istruzioni che lo costituiscono, scritte con il lessico e la sintassi
proprie del linguaggio di programmazione.
Esistono linguaggi di programmazione compilati ed altri interpretati.
Nei linguaggi compilati il codice sorgente è tradotto una volta per tutte nel “linguaggio macchina” proprio di una
certa famiglia di processori/sistemi operativi. Il linguaggio macchina è il linguaggio in codice binario comprensibile
dalla CPU. Un file tradotto in linguaggio macchina viene chiamato eseguibile, e nei sistemi operativi Windows è
riconoscibile dall’estensione .exe.
Nei linguaggi compilati il programmatore scrive il programma, lo compila, e successivamente distribuisce agli
utenti l’eseguibile. L’eseguibile non è comprensibile dagli utenti, è una sorta di scatola nera di cui si conosce solo il
funzionamento ma non il modo in cui è stato costruito (non si conosce il codice sorgente).
Nei linguaggi interpretati il codice sorgente viene tradotto in linguaggio macchina ogni volta che viene eseguito. La
traduzione viene effettuata da un apposito software (l’interprete) che deve essere presente sul computer
dell’utente. Un tipico interprete è la Java Virtual Machine (JVM) che interpreta i programmi scritti in Java.
Nei linguaggi interpretati il programmatore scrive il programma e distribuisce direttamente il codice sorgente.
Vantaggi e svantaggi di un linguaggio “interpretato”:
•
•
•
•
l’esecuzione del programma è più lenta e richiede più memoria, in quanto ad ogni esecuzione è necessaria la
fase di traduzione
il programma non è autonomo, nel senso che è necessaria la presenza del software interprete sul computer
dell’utente
il programma è comprensibile per un’utente che conosca il linguaggio di programmazione. Questo può
essere un vantaggio (vedi open source) oppure uno svantaggio (protezione del copyright)
l’esecuzione del programma non è vincolata ad una particolare famiglia di processori/sistemi operativi. E’
molto utile per i programmi eseguiti direttamente su internet.
Linguaggi di programmazione interpretati: Python, e con una certa approssimazione Java e .NET (si legge DotNet).
Linguaggi di programmazione compilati: C, C++.