Vuoi navigare il sito Treccani senza limiti e pubblicità? Scarica l'APP e abbonati ora per accedere su tutti i tuoi dispositivi!
Scarica
​

Linguaggi di programmazione

di Walter Maraschini
Enciclopedia dei ragazzi (2006)

linguaggi di programmazione

Walter Maraschini

Come avviene la comunicazione tra uomo e computer

Il computer è una macchina che esegue ordini; non prende iniziative. Per impartire ordini è tuttavia necessario comunicare; è cioè necessario che l’esecutore, il computer, ‘comprenda’ ciò che gli viene ordinato di fare. I linguaggi di programmazione sono ciò che permette tale comunicazione: hanno una forma comprensibile all’essere umano che programma, ma contemporaneamente sono facilmente traducibili dalla macchina stessa nel suo linguaggio interno, il linguaggio-macchina, che in realtà è soltanto una lunga sequenza di 0 e di 1

Linguaggi naturali

Quando si chiacchiera tra amici, si scrive un messaggio o si legge un libro, si utilizza il linguaggio appreso fin da piccoli. L’italiano, l’inglese e i tanti altri linguaggi parlati nel mondo si sono evoluti naturalmente nel corso della storia e sono pertanto detti linguaggi naturali. Sono linguaggi molto flessibili e potenti: con essi non solo si fanno affermazioni e si comunicano informazioni, ma si pongono domande, si esclama, si dichiarano intenzioni, si esprimono emozioni.

I linguaggi naturali hanno regole ortografiche e sintattiche, ma è possibile una grande varietà espressiva: spesso si può usare una parola al posto di un’altra (sinonimi) e anche cambiare l’ordine delle parole stesse. A volte il linguaggio naturale può essere ambiguo, soprattutto se in forma scritta, in quanto parlando è più facile eliminare le ambiguità attraverso l’intonazione e l’abbondanza dell’informazione.

linguaggi formali

A differenza dei linguaggi naturali i linguaggi formali sono costruiti artificialmente, hanno regole molto rigide e non possono dar luogo ad ambiguità. Per questo motivo sono utilizzati per comunicare istruzioni precise. Per esempio, un’espressione matematica quale (311)32 indica precisamente quale calcolo fare. È un modo sintetico per dire: «addiziona 3 a 1 e poi moltiplica il risultato per 2».

Anche per descrivere le mosse di una partita a scacchi si usa un linguaggio formale. Ogni casella è individuata da una lettera e da un numero, come nel gioco della battaglia navale. Per esempio, il re bianco, all’inizio del gioco, si trova nella casella e1.

Se il giocatore con i pezzi bianchi decide, come prima mossa, di far avanzare di due caselle il pedone bianco davanti al re, la mossa formalmente descritta con «e2-e4» indica che il pezzo collocato in e2 va spostato in e4.

I linguaggi di programmazione, nati nella metà del 20° secolo, quando furono costruiti i primi calcolatori elettronici, sono linguaggi formali.

Il linguaggio macchina

Il computer è una macchina elettronica, un insieme complicato di circuiti elettrici che, come un interruttore, possono trovarsi soltanto in due stati: chiuso o aperto. Per indicare questi due stati si utilizzano i simboli 0 e 1. Perciò, ogni dato immesso in un computer è elaborato al suo interno attraverso questa forma: ogni istruzione eseguita è, all’interno della macchina, una lunga sequenza di 0 e 1. Il linguaggio con cui opera il computer, il linguaggio macchina, usa due soli simboli ed è pertanto anche detto binario.

Scrivere un programma in linguaggio macchina richiede tempo ed è facile commettere errori: una macchina non è in grado di capire se è stato scritto uno 0 al posto di un 1 per una svista del programmatore. Dalla metà del 20° secolo si cominciano così a costruire linguaggi intermedi, più facili da leggere e scrivere per l’operatore umano e che – attraverso un linguaggio interprete – sono automaticamente tradotti in linguaggio macchina.

Così il programmatore può scrivere una istruzione del tipo: «Fa’ l’operazione 312 e scrivi il risultato». Essa viene automaticamente tradotta in una sequenza di 0 e 1 che fa avviare il processo di calcolo da parte della macchina. Il linguaggio di programmazione è così il mezzo che permette di comunicare al computer i dati e la sequenza di istruzioni da eseguire per fare un calcolo, risolvere un problema, memorizzare e rappresentare una foto.

Molti linguaggi, ma tutti equivalenti

Come esistono numerosi linguaggi naturali, così esistono decine e decine di linguaggi di programmazione che rispondono a obiettivi diversi (di tipo commerciale o statistico, per i calcoli matematici, per operazioni logiche, perché più adatti alla grafica, o altro ancora).

Tutti i linguaggi di programmazione sono però tra loro equivalenti, nel senso che qualunque programma scritto in un linguaggio può essere in via di principio tradotto in un altro linguaggio. Tutti i linguaggi di programmazione devono permettere che il computer ‘legga’ i dati che si vogliono trattare (che possono essere numeri, testi, ma anche oggetti di altro tipo, purché traducibili in simboli) e contengono alcune istruzioni fondamentali, quali istruzioni:

di avvio e di fine lavoro (espresse in inglese, sono per esempio begin («inizia») ed end («finisci»);

di lettura da qualche dispositivo esterno (tastiera, mouse, scanner);

di scrittura su qualche dispositivo esterno (stampante, monitor);

di assegnazione di valore a una variabile (se si introduce un valore in un computer esso deve essere ‘depositato’ in qualche cella di memoria).

Un esempio di programma

In ogni linguaggio un programma è una sequenza di istruzioni, simile – ma più rigido – a come è una ricetta in un libro di cucina. Ci sono poi due importanti strutture di controllo che permettono al computer di seguire l’una o l’altra di due strade possibili: la prima è la selezione, che si esprime con «se… allora …» (nei linguaggi di programmazione è in inglese: «if… then…»). Il computer esegue le istruzioni dopo la parola «allora» solo nel caso in cui la condizione che è scritta dopo la parola «se» è vera. La seconda struttura di controllo è il ciclo, che si esprime con «ripeti… finché…» (nei linguaggi di programmazione è in inglese: «repeat… until…»). Il computer esegue più volte le istruzioni dopo la parola «ripeti» fino a che diventa vera la condizione scritta dopo la parola «finché».

Il computer è una macchina ripetitiva, che supplisce con la velocità alle sue limitate abilità di calcolo. Di fatto, per eseguire la moltiplicazione di un numero positivo a per 3 egli lo deve addizionare a sé stesso 3 volte (a335 a1a1a).

Ciò si può realizzare con un programma, che avrebbe questa struttura:

inizia

leggi un numero da tastiera

assegnalo alla casella a

se a è maggiore di 0 allora

ripeti addiziona a al numero precedente

finché hai compiuto questa operazione 3 volte

scrivi sul monitor il numero contenuto in a

finisci

Le ambiguità dei linguaggi naturali

Leggiamo questo titolo comparso su un quotidiano: «Operaio accetta la moglie». Se il fatto descritto nell’articolo riguardasse l’accettazione della moglie da parte dell’operaio, probabilmente non sarebbe comparso sul giornale. In effetti, l’articolo chiariva l’ambiguo titolo: un operaio aveva ucciso la moglie a colpi di accétta. Anche la seguente frase è ambigua: «La madre addormentata la figlia esce». Ponendo le virgole in due modi diversi, essa assume significati opposti: «La madre addormentata, la figlia esce». «La madre, addormentata la figlia, esce».

I linguaggi di programmazione più utilizzati

FORTRAN (Formula translator): è uno dei primi linguaggi, utilizzato per calcoli matematici e scientifici.

COBOL (Common business oriented language): viene utilizzato soprattutto nelle amministrazioni delle aziende.

BASIC (Beginner's all purpose symbolic instruction code): è orientato a qualunque scopo, diffuso in diverse versioni (dialetti) e ancora oggi largamente usato per la sua relativa semplicità.

Pascal: è stato elaborato nel 1970 dall’ingegnere elettronico Niklaus Wirth con l’obiettivo di costruire un linguaggio che permetta di programmare in modo più logico.

C: risale agli anni Ottanta del 20° secolo, ed è molto usato ancora oggi, con varianti e modifiche, perché permette di operare in modo simile con oggetti di tipo diverso.

Java: è un linguaggio, derivato dal C, utilizzato per costruire siti web, e ha la caratteristica di essere indipendente dalla particolare macchina in cui viene usato.

© Istituto della Enciclopedia Italiana fondata da Giovanni Treccani - Riproduzione riservata