home page Pisani

Numeri, figure, algoritmi

 

Cos'è un linguaggio di programmazione?

In parole molto semplici, possiamo dire che un linguaggio di programmazione (come il Basic) è uno strumento per poter controllare il computer, facendogli eseguire determinati compiti.

Come ogni linguaggio che si rispetti, è necessario che siano definiti due elementi essenziali: un lessico e una sintassi. In un linguaggio naturale, il lessico è l'insieme delle parole che possiamo trovare in un vocabolario, ciascuna con il suo significato. La sintassi è il modo di mettere assieme le parole per costruire una frase.

Ad esempio, se dovessi chiedere a Giorgio di passarmi la mela che è sul tavolo, e mi mancasse una parte del lessico, ne uscirebbe qualcosa del genere:

"Giorgio, dammi la cosa che è sul coso"

Se invece mi mancasse solo la sintassi, riuscirei a spaventare il povero Giorgio dicendogli:

"Mela la Giorgio tavolo che sul dammi è"

(con un risultato ancora peggiore)

In un linguaggio di programmazione esistono delle precise parole del lessico (chiamate istruzioni) e una precisa sintassi. In Basic, ad esempio, per far scrivere la frase "Ciao a tutti" sullo schermo si usa l'istruzione PRINT che deve essere usata in questo modo:

PRINT "Ciao a tutti"

Se scrivessi invece:

"Ciao a tutti" PRINT

Il computer si rifiuterebbe di eseguire, mostrandoci un messaggio di errore sintattico.

Allo stesso modo, il computer si rifiuterebbe di lavorare se proviamo a istruirlo in questo modo:

SCRIVI "Ciao a tutti"

Infatti "lui" non conosce la parola "SCRIVI". La sintassi andrebbe anche bene, ma qui si tratta di un errore lessicale.

Esiste solo il QuickBasic?

Ovviamente no. Ecco i nomi di alcuni famosi linguaggi di programmazione:

Pascal (utilizzato soprattutto nella didattica dell'informatica)
C++ (uno dei più utilizzati dai professionisti)
Java (linguaggio utilizzato nella rete Internet, è un dialetto semplificato del C++)
Javascript (sottoinsieme di istruzioni simili al Java, adatto alle pagine web)
Prolog (linguaggio di "programmazione logica")
Lisp, Logo, Perl, PHP,
ecc..

L'elenco sarebbe lunghissimo. E' interessante sapere che, a parte qualche rara eccezione come il Prolog, tutti i linguaggi di programmazione si basano su strutture molto simili. Imparare uno dei linguaggi significa avere le chiavi per impararli tutti.

Linguaggi interpretati e linguaggi compilati

I linguaggi di programmazione tendono ad assomigliare ai linguaggi naturali (quelli usati dall'uomo) proprio per rendere più facile la programmazione del computer. Il computer invece "capisce" un suo linguaggio fatto esclusivamente da numeri, anzi, da sequenze di cifre binarie 1 e 0.

Questo linguaggio binario si chiama "linguaggio macchina" e all'uomo risulterebbe difficilissimo da imparare.

10010111011100011101110010110001001111110010111101000101

facile no?

I primi computer, si basavano esclusivamente sul linguaggio macchina e il loro schermo era un piccolo led che mostrava dei "pacchetti" di cifre binarie. Il programmatore utilizzava una tabella che serviva per tradurre i comandi nella serie corrispondente di cifre binarie da inserire. Un lavoraccio da certosini. E bastava sbagliare una cifra per mettere in crisi tutto il sistema. I giochini per computer non se li immaginavano nemmeno!

Fortunatamente, oggi esistono dei programmi che fanno da interpreti automatici, cioè che traducono un linguaggio ad alto livello come il Basic nella sequenza di 1 e 0 del linguaggio macchina.

a) linguaggi interpretati

Il programma QBasic è uno di questi interpreti. Esso "legge" riga per riga il listato che noi scriviamo, ne controlla il lessico e la sintassi e traduce in linguaggio macchina. Infine lo fa eseguire al computer. Questa sequenza di operazioni si ripete per ogni riga del listato: 1) lettura di una riga 2) controllo di lessico e sintassi 3) traduzione, 4) esecuzione.

b) linguaggi compilati

Altri linguaggi (come il Pascal o il C++) utilizzano invece dei programmi compilatori: tutto il listato viene prima controllato nel lessico e nella sintassi, tradotto e trasformato in un file eseguibile (con estensione .exe nei sistemi Windows) contenente il codice del linguaggio macchina. Soltanto alla fine di queste operazioni si può inviare il file al computer per l'esecuzione.

I linguaggi compilati sono più efficienti di quelli interpretati. Inoltre il file eseguibile diventa indipendente dal listato che lo ha prodotto, e può essere eseguito anche senza il programma interprete.


Pisani home page | forum scuola | Numeri, figure, algoritmi