32. Linguaggi di programmazione


 

In generale un programma è composto da una sequenza di istruzioni. Queste istruzioni sono determinate dal linguaggio di programmazione adoperato. A seconda del livello di astrazione permesso, si distinguono linguaggi di basso e di alto livello. I primi sono i più vicini al linguaggio macchina ossia al linguaggio puro della macchina costituito da una sequenza di 0 e 1.

 

Partendo dal basso livello, il primo linguaggio che incontriamo è l’assembly, o assembler. È costituito da una serie di comandi (ad esempio, ADD o JUMP), ciascuno associato a una singola istruzione espressa in forma binaria, comprensibile e immediatamente eseguibile dalla macchina. La programmazione in linguaggio assembly produce programmi veloci, ma ha lo svantaggio di essere specifica per ogni tipo di processore; quest'ultima caratteristica impone che il programma venga riscritto in caso lo si voglia trasferire da una macchina all'altra e, inoltre, impone che un programmatore conosca diversi linguaggi assembly per poter programmare macchine differenti. Per questo motivo si è reso necessario lo sviluppo di nuovi linguaggi nei quali un'unica espressione simbolica rappresenti più di un'istruzione in linguaggio macchina, e di un sistema che permetta allo stesso programma di "girare" su macchine di diverso tipo. Tale necessità ha portato alla creazione dei linguaggi di alto livello.

 

I linguaggi di alto livello impiegano parole della lingua inglese (ad esempio LIST, PRINT, OPEN, CLOSE, IF, THEN) per esprimere singoli comandi che sostituiscono sequenze di decine o centinaia di istruzioni in linguaggio macchina. Queste istruzioni sono più vicine al mondo umano e quindi più facilmente intuibili. Questi comandi, generalmente inseriti da tastiera nella memoria di lavoro o in una memoria di massa del computer, vengono poi elaborati da un programma traduttore che li converte in istruzioni in linguaggio macchina.

 

Esistono due tipi di programmi traduttori: gli interpreti e i compilatori. L'interprete traduce i programmi durante l'esecuzione, per cui eventuali cicli ripercorsi più volte vengono ritradotto ogni volta. Questo comporta che l'esecuzione di un programma interpretato sia molto più lenta di quella dello stesso programma scritto in linguaggio macchina. Per contro, i compilatori trasformano in linguaggio macchina l'intero programma prima della sua esecuzione, per cui i programmi "girano" altrettanto rapidamente che se fossero redatti direttamente in tale forma.

 

Di seguito presenterò alcuni dei più importanti linguaggi di programmazione ad alto livello in ordine cronologico.

 

Per facilitare l'impiego dei calcolatori nel campo della ricerca scientifica, l'IBM sviluppò un linguaggio adatto all'applicazione di formule matematiche complesse. Abbozzato nel 1954 e completato nel 1957, il FORTRAN (FORmula TRANslator) fu il primo linguaggio di alto livello a conoscere un'ampia diffusione.

 

Dopo la comparsa del Fortran nacquero una serie di altri linguaggi di programmazione storici, che implementarono una serie di idee e paradigmi innovativi: i più importanti sono l'ALGOL (ALGOrithmic Language) (1958) e il Lisp (List Processor) (1959). Il primo che cercò di correggere alcuni dei difetti rilevati nel FORTRAN, fu ampiamente usato in Europa negli anni Sessanta e Settanta, ed in seguito soppiantato da nuovi linguaggi, mentre il secondo è alla base dei moderni linguaggi di intelligenza artificiale.

 

Dal FORTRAN derivò il BASIC (Beginner's All-purpose Symbolic Instruction Code), destinato agli utenti non professionisti, fu sviluppato nel 1964. Divenne di uso pressoché universale con l'esplosione dei microcomputer degli anni Settanta e Ottanta. Ritenuto lento, inefficiente e poco elegante dai suoi detrattori, il BASIC è comunque semplice da imparare e di facile utilizzo. Il linguaggio conobbe una vasta e rapida diffusione anche grazie al fatto che molti dei primi microcalcolatori venivano venduti con il BASIC già installato nelle ROM.

 

Tutti i linguaggi di programmazione oggi esistenti possono essere considerati discendenti da uno o più di questi primi linguaggi su citati.

 

Il COBOL (COmmon Business Oriented Language), ideato per applicazioni nei campi dell'amministrazione e del commercio, per l'organizzazione dei dati e la manipolazione dei file, trova oggi largo uso nel mondo degli affari.

 

Il PASCAL, progettato in origine come strumento didattico e divenuto oggi uno dei più popolari linguaggi per microcomputer; il LOGO, creato per introdurre i bambini all'uso del computer; il C, adatto allo sviluppo di programmi per sistemi complessi, così come il suo derivato C++; il PROLOG, molto usato negli studi sull'intelligenza artificiale. Attualmente sono stati introdotti nuovi linguaggi: il JAVA che permette di estendere qualsiasi applicazione indipendentemente dalla piattaforma ed il C# (C sharp) successore del C e C++.

A questi ultimi si aggiungono linguaggi proprietari realizzati da grandi software house quali il VISUAL BASIC realizzato dalla Microsoft, il DELPHI creato da Borland e altri.