Linguaggi di programmazione: un tuffo nella storia dell’informatica

Linguaggi di programmazione

Con linguaggio di programmazione si intende esprimere un processo con il quale, mediante un programma, un processore ha la possibilità di eseguire un algoritmo o più semplicemente di risolvere un problema.

I linguaggi di programmazione riconosciuti sono solo quelli computazionalmente completi. Per linguaggi computazionalmente completi intendiamo un linguaggio equivalente in potere espressivo al linguaggio macchina di Turing e che non riesce ad esprimere anche programmi di cui non è decidibile la terminazione. Per esempio SQL non è un linguaggio completo perché si può sempre dire quando termina il programma. Quindi per definizione si definisce completo un linguaggio in grado di simulare arbitrarie macchine di Turing.

Linguaggi di programmazione

I linguaggi di programmazione

Nella “recente” storia dell’informatica possiamo annoverare centinaia o forse migliaia di linguaggi di programmazione. Sebbene molti di essi siano caduti in disuso, siano stati dimenticati o siano addirittura esoterici, hanno comunque influenzato o avuto un peso nella nascita di quelli moderni. Orientarsi in questo mare magnum di linguaggi non è semplice; riconoscerne somiglianze e differenze e afferrarne il language design ancora più complicato. Presentando alcuni di quelli che possiamo considerare i progenitori dei linguaggi di oggi, si possono riconoscere e capire alcuni dei più importanti concetti che hanno introdotto.

Alcuni linguaggi e caratteristiche

Di seguito alcuni linguaggi storici e le loro caratteristiche principali:

  • Fortran: pensato per la manipolazione algebrica ha introdotto, tra le altre cose, variabili, concetto di tipo, subroutine, go to, iterazioni e statement condizionali;
  • Cobol: ha una sintassi english like abbastanza verbosa, infatti ci si era iniziati a porre il problema di come rendere i linguaggi più facili da usare;
  • Lisp: è stato il primo vero linguaggio di manipolazione simbolica. Paradigma funzionale, nella prima versione essenzialmente non tipata;
  • Prolog: è stato molto innovativo ed è il principale liguaggio di programmazione a paradigma logico. Essenzialmente non tipato;
  • Pascal: programmazione strutturata, tipi di dato definiti da utente, ricchezza di strutture dati. Ma ancora niente encapsulation: per questa si dovrà aspettare Modula.
immagine royalty free

Paradigmi computazionali

I paradigmi computazionali sono degli stili di programmazione che classificano i linguaggi. In un certo modo con un paradigma si definisce il modo in cui il programmatore concepisce e identifica il programma. Esistono diversi paradigmi di programmazione: funzionale, a oggetti, procedurale, ecc… Il paradigma non è il solo e unico aspetto determinante in un linguaggio, ma è certo che la scelta di un determinato paradigma computazionale influenzi in gran modo la maniera in cui si risolve un problema.