I linguaggi di programmazione

Novembre 2016
Viene detto «linguaggio di programmazione» un linguaggio destinato a descrivere l'insieme delle azioni consecutive che un computer deve eseguire. Un linguaggio di programmazione è anche un modo pratico per noi (umani) di dare delle istruzioni a un computer. Al contrario, il termine «linguaggio naturale» rappresenta le possibilità di espressione condivise da un gruppo di individui (ad esempio l'inglese o l'italiano).

I linguaggi che servono ai computer per comunicare fra loro non hanno niente a che vedere con gli altri linguaggi di programmazione, infatti in questo caso si parla di protocolli di comunicazione, due nozioni totalmente diverse. Un linguaggio di programmazione è rigoroso: ad ogni istruzione corrisponde un'azione del processore .


Linguaggi di programmazione

Il linguaggio usato dal processore è detto codice macchina. Si tratta di dati come quelli che arrivano al processore, costituiti da una serie di 0 e di 1 (dati binari). Il linguaggio macchina non è quindi comprensibile all'uomo, ed è per questo che dei linguaggi intermedi, comprensibili all'uomo, sono stati messi a punto. Il codice scritto in questo tipo di linguaggio è trasformato in linguaggio macchina per essere utilizzabile dal processore.

L'Assembly è il primo linguaggio informatico che è stato utilizzato. Questo è molto simile al linguaggio macchina ma resta comprensibile agli sviluppatori. Tuttavia, un linguaggio simile assomiglia talmente al linguaggio macchina che dipende strettamente dal tipo di processore usato (ciascun tipo d processore può avere il proprio linguaggio macchina). Così, un programma sviluppato per una macchina non potrà essere portato su un altro tipo di macchina. Il termine «portabilità» designa l'attitudine di un programma informatico ad essere utilizzato su macchine di tipo diverso. Per usare un programma informatico scritto in Assembly su un altro tipo di macchina, sarà talvolta necessario riscrivere completamente il programma. Un linguaggio informatico ha quindi più vantaggi:

È più comprensibile rispetto ad un linguaggio macchina;

Permette una maggiore portabilità, cioè una maggiore facilità di adattamento su macchine di tipo diverso.

Linguaggi imperativi e funzionali

Distinguiamo solitamente due grandi famiglie di linguaggi di programmazione, secondo il modo in cui le istruzioni vengono trattate:


Linguaggi imperativi;

Linguaggi funzionali.

Linguaggio imperativo

Un linguaggio imperativo organizza il programma come una serie di istruzioni, raggruppate in blocchi e comprendenti dei salti condizionali che permettono di ritornare ad un blocco di istruzioni se la condizione è realizzata. Si tratta storicamente dei primi linguaggi, anche se molti linguaggi moderni usano ancora questo principio di funzionamento. I linguaggi imperativi strutturati soffrono tuttavia di una mancanza di flessibilità dato il carattere sequenziale delle istruzioni.

Linguaggio funzionale

Un Linguaggio funzionale (detto talvolta linguaggio procedurale) è un linguaggio nel quale il programma è costruito per funzioni, rinviando un nuovo stato in uscita e prendendo in entrata l'uscita di altre funzioni. Se la funzione si chiama da sola, allora si parla di periodicità.

Interpretazione e compilazione

I linguaggi informatici possono grossomodo essere classificati in due categorie:


Linguaggi interpretati

Linguaggi compilati.

Linguaggio interpretato

Un linguaggio informatico è per definizione diverso dal linguaggio macchina. Bisogna quindi tradurlo per renderlo leggibile dal punto di vista del processore. Un programma scritto in un linguaggio interpretato ha bisogno di un programma ausiliario (l'interprete) per tradurre man mano le istruzioni de programma.

Linguaggio compilato

Un programma scritto in un linguaggio detto «compilato» sarà tradotto una volta per tutte da un programma specifico, detto compilatore, per creare un nuovo file che sarà autonomo, cioè che non avrà bisogno di un altro programma per essere eseguito ; si dice allora che il file è eseguibile.

Un programma scritto in un linguaggio compilato ha come vantaggio di non aver più bisogno, una volta compilato, del programma specifico per essere eseguito. Inoltre, essendo la traduzione fatta una volta per tutte, sarà di più rapida esecuzione. Tuttavia esso è meno flessibile rispetto ad un programma scritto con un linguaggio interpretato dato che ad ogni modifica del file sorgente (file intellegibile dall'uomo: quelle che deve essere compilato) bisognerà ricompilare il programma affinché le modifiche diventino effettive.

D'altra parte, un programma compilato ha come vantaggio di garantire la sicurezza del codice sorgente. In effetti, un linguaggio interpretato, essendo direttamente leggibile, permette a chiunque di conoscere i segreti di fabbricazione di un programma e quindi di copiare il codice o anche di modificarlo. Vi è dunque il rischio del non-rispetto dei diritti di autore. Così, alcune applicazioni sicure necessitano della confidenzialità del codice per evitare la pirateria (transazioni bancarie, pagamento in linea, comunicazioni sicure, ecc.).

Linguaggi intermedi

Alcuni linguaggi appartengono in qualche modo alle due categorie (LISP, Java, Python, ecc.) dato che il programma scritto con questi linguaggi può in alcune condizioni subire una fase di compilazione intermedia verso un file scritto in un linguaggio che non è leggibile (quindi diversi dal file sorgente) e non eseguibili (necessità di un interprete). Gli applet Java, piccoli programmi inseriti a volte nelle pagine web, sono dei file che sono compilati ma che si possono eseguire solo partendo da un navigatore internet (sono dei file con estensione est .class).

Alcuni esempi di linguaggio correntemente usati

Qui di seguito una lista non esaustiva di linguaggi informatici esistenti:


LinguaggioDominio di applicazione principaleCompilato/interpretato
ADAIl tempo realeLinguaggio compilato
BASICProgrammazione di base a scopo educativoLinguaggio interpretato
CProgrammazione di sistemaLinguaggio compilato
C++Programmazione di sistema oggettoLinguaggio compilato
CobolGestioneLinguaggio compilato
FortranCalcoloLinguaggio compilato
JavaProgrammazione orientata internetLinguaggio intermedio
MATLABCalcolo matematicoLinguaggio interpretato
MathematicaCalcolo matematicoLinguaggio interpretato
LISPIntelligenza artificialeLinguaggio intermedio
PascalInsegnamentoLinguaggio compilato
PHPSviluppo di siti web dinamicilinguaggi interpretati
PrologIntelligenza artificialeLinguaggio interpretato
PerlTrattamento di stringhe di caratteriLinguaggio interpretato

Potrebbe anche interessarti :

Programming languages
Programming languages
Lenguajes de programación
Lenguajes de programación
Programmiersprachen
Programmiersprachen
Les langages informatiques
Les langages informatiques
As linguagens informáticas
As linguagens informáticas
Il documento intitolato « I linguaggi di programmazione » da CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.