Linguaggio di programmazione.


Linguaggio di programmazione.

Un linguaggio di programmazione è un linguaggio per algoritmi formalizzato e universale. Per “formalizzato” si intende che la sintassi e la semantica del linguaggio sono definite in modo completo e rigoroso o, appunto, formale. I primi e veri propri linguaggi di programmazione (1) sono stati i cosiddetti “linguaggi macchina” dei primi elaboratori (anni 46-50). Ci si è presto resi conto che anche la programmazione in questi linguaggi risultava tediosa al punto di limitare di fatto l'insieme dei problemi affrontabili. Ciò è dovuto all'eccessiva distanza che esiste fra il modo di operare dell'uomo e quello delle macchine costruite con la tecnologia elettronica. Per questo motivo, a partire dagli anni '50, sono stati proposti linguaggi più vicini al modo di pensare dell'uomo, detti <<ad alto livello>>, e contrapposti ai linguaggi macchina, detti <<a basso livello>>. Il problema di disporre concretamente degli esecutori associati ai linguaggi ad alto livello è stato risolto ricorrendo a due diverse tecniche note come compilazione e interpretazione. Nel primo caso il programma ad alto livello viene tradotto in linguaggio macchina mediante un programma (espresso in linguaggio macchina) detto “compilatore”. Nel secondo caso si fa uso di un programma espresso in linguaggio macchina, detto “interprete”, che quando viene eseguito consente di mettere a disposizione un vero e proprio esecutore del linguaggio ad alto livello. Sul concetto di interprete torneremo a parlarne in seguito. I primi linguaggi ad alto livello sono stati il FORTRAN (per problemi scientifici) ed il COBOL (per problemi gestionali). Per molti anni essi sono stati considerati praticamente gli unici linguaggi di programmazione ad alto livello (ciò spiega il motivo per cui ancor oggi esistono forti resistenze all'abbandono di questi due linguaggi). A partire dai primi anni '70 hanno però cominciato a prendere piede molti altri linguaggi ad alto livello. Ci limiteremo qui a ricordare quelli che sono nati con dei chiari intenti educativi. In linea di principio possiamo infatti distinguere fra linguaggi di programmazione “educativi” (nati cioè per facilitare l'apprendimento della programmazione e/o di concetti ad essa collegati) e linguaggi “professionali” (nati per rispondere alle esigenze della produzione professionale del software). Alcuni obbiettivi sono comuni; altri sono decisamente in contrasto fra loro. In pratica è accaduto che alcuni linguaggi nati per scopi educativi sono stati poi estesi e stravolti per rispondere alle esigenze della produzione (BASIC e PASCAL). Tra i linguaggi educativi ci limiteremo a ricordare i seguenti:

Il BASIC.La sua prima realizzazione risale all'anno 1966. Si tratta di un linguaggio simile al FORTRAN che ha avuto la sua maggior fortuna in coincidenza dell'avvento dei <<personal>> e che, in seguito aciò, ha subito innumerevoli (e non concordate) estensioni rispetto alla prima versione per renderlo un linguaggio professionale. Alcune sue caratteristiche lo espongono a motivate critiche sulla sua effettiva validità educativa.

Il LOGO. La prima definizione del linguaggio risale al 1966. È nato espressamente da alcuni studi pedagogici effettuati da Seymour Papert sui processi di apprendimento da parte dei bambini. Riprende alcune idee del LISP, uno dei linguaggi più usati nell'ambito dell'Intelligenza Artificiale. In Italia ha cominciato a diffondersi solo dai primi anni '80.

Il PASCAL. È il linguaggio proposto dal 1968 da Niklaus Wirth (Università di Zurigo) per l'apprendimento della <<buona>> programmazione da parte dei suoi studenti. Ha avuto un successo che ha superato ogni più rosea previsione affermandosi anche in alcuni ambienti di produzione professionale del software. Viene insegnato soprattutto nelle università e nelle scuole medie superiori.

Lo SMALLTALK. È un linguaggio ideato da alcuni ricercatori della Xerox nella seconda metà degli anni '70 con diversi obbiettivi educativi fra cui quello di privilegiare la programmazione dal punto di vista degli ambienti e quello di presentare un ambiente integrato di programmazione particolarmente elegante e con un'interfaccia d'uso molto “amichevole”. Le risorse di cui necessità ne hanno impedito fino ad oggi una larga diffusione.

Commenti

Post popolari in questo blog

INSTAFETCH - Android -

I pesci abissali. Zoologia marina.

La Centrale Idroelettrica.