Sei sulla pagina 1di 2

I Linguaggi di Programmazione

Introduzione
Un linguaggio di programmazione un linguaggio dotato di un lessico, di una sintassi e di una semantica
ben definiti. Attraverso la fase di programmazione, un programmatore scrive il codice sorgente necessario
a comandare una macchina. Un linguaggio di programmazione considerato tale a tutti gli effetti se
Turing completo.

Concetti fondamentali
-

Istruzione: pu essere un comando o una regola descrittiva.


Variabile: un dato o un insieme di dati gi memorizzati o da memorizzare; ad ogni variabile
corrisponde uno spazio di memoria che viene allocato, cio riservato, per contenere i dati stessi.
Espressione: una combinazione di variabili e costanti, unite da operatori.
Strutture dati: sono meccanismi che permettono di organizzare e gestire dati complessi.
Strutture di controllo: hanno il compito di gestire il flusso di esecuzione del programma.
Sottoprogramma: una parte di codice che pu essere richiamato da qualsiasi punto del
programma.
Input di dati da tastiera: una funzionalit che permette di inserire dati mediante lutilizzo della
tastiera.
Visualizzazione dei dati in output: una funzionalit che permette di stampare a video i datiCommento: possibilit di inserire commenti sul codice scritto.

Il codice sorgente
Programmare in un linguaggio di programmazione significa scrivere dei semplici file di testo ASCII che
verranno tradotti in codice eseguibile da un compilatore. I font, i colori e laspetto grafico sono irrilevanti,
per questo i programmatori non usano programmi di videoscrittura, ma degli editor che offrono funzioni
avanzate.
Se un editor capace di lavorare con gli altri strumenti di lavoro, si parla di IDE o ambiente di sviluppo
integrato.

La compilazione
La compilazione il processo mediante il quale un codice sorgente viene tradotto in codice eseguibile da
una macchina.
La compilazione ha il vantaggio di ottenere eseguibili velocissimi nella fase di esecuzione, ma ha lo
svantaggio nella necessit di compilare un eseguibile per ogni sistema operativo o hardware (portabilit).

Linterpretazione
Per cercare di eliminare il problema della portabilit sono stati creati linguaggi di programmazione che si
basano su librerie compilate ad hoc per ogni piattaforma, e quindi non c la necessit della compilazione
su ogni tipo di macchina su cui viene eseguito.
Linterpretazione ha il vantaggio di poter eseguire un programma su pi piattaforme senza necessit di
modifica, ma ha lo svantaggio della lentezza di esecuzione poich ogni istruzione deve essere controllata e
interpretata ad ogni esecuzione.

Il collegamento
Quando il programma usa delle librerie, queste devono essere collegate tra loro. Lo strumento che effettua
questa operazione detto linker.
Esistono due tipi differenti di collegamento: dinamico e statico.

Collegamento dinamico
Le librerie utilizzate sono caricate dal sistema operativo quando necessarie. Leseguibile risulta di
dimensioni minori ma la possibilit di esecuzione data dalla presenza delle librerie necessarie nel sistema
operativo.

Collegamento statico
Le librerie necessarie vengono incluse nelleseguibile, che risulta di dimensioni maggiori, ma al suo interno
contiene tutto il necessario alla sua esecuzione.

Classi di linguaggi
Esistono molti linguaggi di programmazione che vengono in primis classificati in linguaggi di
programmazione ad alto livello e linguaggi di programmazione di programmazione a basso livello. A loro
volta possono essere classificati in linguaggi compilati o linguaggi interpretati.
I linguaggi vengono poi distinti in tre grandi famiglie: linguaggi imperativi, linguaggi funzionali e linguaggi
logici.

Linguaggi imperativi
Nei linguaggi imperativi listruzione un comando esplicito e le istruzioni vengono eseguite secondo un
ordine prestabilito. Scrivere un programma in un linguaggio imperativo significa occuparsi di cosa deve fare
la macchina per ottenere il risultato voluto.

Linguaggi funzionali
I linguaggi funzionali sono basati sul concetto matematico di funzione. In questo tipo di linguaggio
lassegnazione esplicita risulta assente e viene utilizzato soltanto il passaggio dei parametri.

Linguaggi logici
Nei linguaggi logici listruzione una clausola che descrive una relazione fra i dati, cio descrivere linsieme
delle relazioni esistenti fra i dati e il risultato voluto. La ricerca dellordine di esecuzione delle varie clausole
data allinterprete.

Storia
Il primo linguaggio di programmazione creato fu il Plankalkl, sviluppato da Konrad Zuse durante la seconda
guerra mondiale e pubblicato nel 1946; tuttavia questo linguaggio non fu mai usato per programmare,
infatti i primi elaboratori venivano programmati in short code, da cui poi si evoluto lassembly.
I linguaggi di programmazione successivi hanno cercato di rappresentare strutture dati e strutture di
controllo pi vicine alla maniera umana. Tra i primi linguaggi di questo tipo ci fu il Fortran (da cui deriv
successivamente il BASIC), creato nel 1957 da John Backus, che introduceva nuove strutture di controllo di
flusso.
Il primo linguaggio strutturato fu il Pascal, pubblicato da Niklaus Wirth nel 1970 per scopi didattici; nel 1972
dal BCPL nascono il B, che fu rapidamente dimenticato, e il C, che invece fu un grande successo.