I linguaggi di programmazione sono molti e si distinguono principalmente in due categorie: interpretati e compilati.

I
linguaggi interpretati più diffusi sono:

  • Basic
  • Perl
  • Python
  • PHP

Il codice di un programma interpretato viene salvato cosi com'è, e viene poi letto da un interprete, che è un programma che gira sul sistema operativo in uso.

I linguaggi di programmazione compilati richiedono invece che il codice, una volta terminato, sia processato da un compilatore che, convertendolo in linguaggio macchina, ne permette l'esecuzione.

I linguaggi compilati più famosi sono:

  • C
  • C++
  • Pascal
  • Cobol

I programmi interpretati sono più lenti ma più facili da creare e girano su molti sistemi operativi, a patto di avere lo stesso interprete, e che il dialetto del linguaggio sia comune. I linguaggi compilati, molto spesso, hanno invece degli standard ISO, o comunque regole universali, le quali permettono di compilare un programma senza modifiche su più architetture, anche da una sola macchina, a patto di avere un compilatore adeguato.

Java è pseudocompilato, ossia viene tradotto in un linguaggio intermedio, detto bytecode, il quale è una specie di linguaggio macchina, che viene poi passato all'inIl Visual Basicteprete, che deve essere disponibile per il tipo di macchina che si vuole utilizzare.

Il Visual Basic, per contro, non è un linguaggio standard, ma un ambiente di sviluppo creato per sviluppare programmi in un Basic ad oggetti sviluppato dalla Microsoft, e come tale disponibile solo sui loro OS. Non esistendo uno standard riconosciuto, non viene garantita la compatibilità tra versioni successive, e non è possibile utilizzarlo pienamente su altri sistemi operativi o altre CPU che quelle supportate dalla Microsoft.

Cronologia dei più importanti linguaggi di programmazione

Anno

Nome

Caratteristiche

1954/58

Fortran

Il Fortran è uno dei primi linguaggi di programmazione, essendo stato sviluppato dal 1954, da un gruppo di lavoro guidato da John Backus. Il primo manuale di riferimento per il programmatore del FORTRAN I, "The FORTRAN automatic coding system for the IBM 704 EDPM", scritto dallo stesso Backus, è del 1956; il compilatore fu rilasciato nel 1957. Il Fortran è un linguaggio di solito compilato, imperativo, con tipizzazione statica delle variabili, progettato principalmente per il calcolo scientifico e numerico; vi sono state però anche implementazioni con codice interpretato. Un tipo particolare di Fortran compilato è il Fortran FLAG (Fortran Load And Go), sviluppato da Bob Richardson, programmatore presso la Rice University, molto usato negli anni '70 per l'esecuzione di programmi non troppo complessi. Il suo nome deriva da Formula Translation (o Translator), cioè traduzione/traduttore di formule (matematiche) in algoritmi computazionali.

1960/63

Algol

ALGOL (abbreviazione di ALGOrithmic Language, ossia linguaggio algoritmico) è un linguaggio di programmazione sviluppato nel 1958. In un certo senso fu una reazione al Fortran; introdusse concetti fondamentali come lo stack dei record di attivazione è il capostipite di una grande famiglia di linguaggi di notevole successo, dal Pascal al C. L'ALGOL utilizza blocchi d’istruzioni delimitati da coppie di begin ed end (come il Pascal); è stato il primo linguaggio a usare questa sintassi molto utilizzata anche in didattica: frammenti di sintassi simile all'ALGOL sono tuttora utilizzati a volte come notazione per gli algoritmi chiamata Pidgin Algol. Esistono tre versioni ufficiali di ALGOL: ALGOL 58, ALGOL 60 e ALGOL 68.

1959/60

Cobol

Il COBOL (acronimo di COmmon Business-Oriented Language, ossia, letteralmente, "linguaggio comune orientato alle applicazioni commerciali").

1964

Basic

In informatica il BASIC (acronimo dell'inglese "Beginner's All purpose Symbolic Instruction Code", in italiano "codice d’istruzioni simboliche di uso generale per principianti") è un linguaggio di programmazione ad alto livello sviluppato nel 1964 presso l'Università di Dartmouth sul calcolatore GE-225. Ne furono coinventori i professori John George Kemeny e Thomas Eugene Kurtz.

1968

Logo

Logo è un linguaggio di programmazione molto orientato alla grafica e alla geometria di base. Tramite il comando mostarta (showturtle) è possibile visualizzare sullo schermo un cursore triangolare chiamato tartaruga. Questo cursore può essere spostato con i comandi avanti e indietro (forward e back) seguiti dal numero di "passi" che deve compiere e può essere ruotato con destra e sinistra (right e left) seguiti dall'angolo di rotazione espresso in gradi.

1970

Pascal

Il Pascal è un linguaggio di programmazione creato da Niklaus Wirth. Si basa sul linguaggio ALGOL e fu così chiamato in onore del matematico e filosofo francese Blaise Pascal, inventore della prima macchina calcolatrice automatica. Le caratteristiche principali del Pascal sono una sintassi molto chiara e molto rigida, l'obbligo di dividere il programma in sezioni ben definite (uses, declaration, implementation) e di dichiarare in anticipo tutte le variabili usate nel programma; permette l'uso di tipi di dati complessi e definibili dal programmatore (i record); permette (con alcune limitazioni) l'uso dei puntatori e l'allocazione dinamica della memoria (new e dispose). Il Pascal è pertanto classificato come linguaggio semidinamico, perché gestisce i puntatori, permettendo di creare liste di variabili di dimensione non nota all'atto della compilazione, ma questi possono essere solo di un tipo alla volta, il tipo usato per definire la variabile puntatore stessa. Al posto delle subroutine di uso comune nei linguaggi di allora, il Pascal introduce le procedure e le funzioni, che estendono il concetto di subroutine incapsulando al loro interno le variabili e i dati locali, ed esponendo solo i valori in ingresso e in uscita. Inoltre, nella sua formulazione originale, era privo dell'istruzione GOTO.

1972

C

Il C è un linguaggio di programmazione ad alto livello sviluppato da Dennis Ritchie. Tuttavia, poiché esso mantiene evidenti relazioni semantiche con il linguaggio macchina e l'assembly, risulta molto meno astratto di linguaggi anche affini come per esempio il Pascal. Per questo motivo, talvolta viene anche identificato con la locuzione (più ambigua) linguaggio di medio livello, se non addirittura (in modo certamente improprio) come macro-assembly, o assembly portabile.

1972

Prolog

Il Prolog (contrazione del francese PROgrammation en LOGique) è un linguaggio di programmazione che adotta il paradigma di programmazione logica. È stato ideato da Robert Kowalski (aspetto teorico), Marten Van Emdem (dimostrazione sperimentale) ed implementato da Alain Colmerauer negli anni settanta, costituendo un tentativo di costruire un linguaggio di programmazione che consentisse l'espressione del problema in forma logica invece della traduzione di un algoritmo di soluzione in forma di istruzioni da eseguire da parte della macchina. L'attuale implementazione di Prolog è dovuta in gran parte all'efficiente codifica di David H.D. Warren, implementata tramite la sua Warren Abstract Machine (1983).Il Prolog è impiegato in molti programmi d’intelligenza artificiale, la sua sintassi e la semantica sono molto semplici e chiare (lo scopo primitivo era quello di fornire uno strumento di lavoro a linguisti privi di conoscenze informatiche).

1983

C++

Il C++ è un linguaggio di programmazione orientato agli oggetti, con tipizzazione statica. È stato sviluppato (in origine col nome di "C con classi") da Bjarne Stroustrup ai Bell Labs nel 1983 come un miglioramento del linguaggio C. Tra i miglioramenti principali troviamo: l'introduzione del paradigma di programmazione a oggetti, funzioni virtuali, overloading degli operatori, ereditarietà multipla, template e gestione delle eccezioni.

1987

Perl

Perl è un linguaggio di programmazione ad alto livello, dinamico, procedurale e interpretato, creato nel 1987 da Larry Wall. Perl ha un singolare insieme di funzionalità ereditate da C, scripting shell Unix (sh), Awk, sed e in diversa misura da molti altri linguaggi di programmazione, compresi alcuni linguaggi funzionali.

1991

Python

Python è un linguaggio di programmazione ad alto livello, orientato agli oggetti, adatto, tra gli altri usi, per sviluppare applicazioni distribuite, scripting, computazione numerica e system testing. Python è spesso paragonato a Tcl, Perl, Java, JavaScript, Visual Basic o Scheme. Fu ideato da Guido van Rossum alla fine degli anni novanta.

1994

PHP

PHP (acronimo ricorsivo di "PHP: Hypertext Preprocessor", preprocessore d’ipertesti); originariamente acronimo di "Personal Home Page" è un linguaggio di programmazione interpretato, originariamente concepito per la programmazione Web ovvero la realizzazione di pagine web dinamiche. L'interprete ha una licenza open source e libera (ma incompatibile con la GPL).

1995

Java

Java è un linguaggio di programmazione orientato agli oggetti, creato da James Gosling e altri ingegneri di Sun Microsystems. Java è un marchio registrato di Oracle. I programmi scritti in linguaggio Java, dopo una fase iniziale di compilazione con ottenimento del cosiddetto bytecode, sono destinati all'esecuzione sulla piattaforma Java attraverso una fase di interpretazione (per questo motivo il linguaggio Java è detto anche semi-interpretato) ad opera di una Java Virtual Machine e, a tempo di esecuzione, avranno accesso alle API della libreria standard. Questi due step forniscono un livello di astrazione che permette alle applicazioni di essere interamente indipendenti dal sistema hardware su cui esse saranno eseguite.

 

 Esempio di programma in C++: l'esempio si riferisce all'algoritmo Ordinamento di tre numeri in modo decrescente

/*
  Name: Ordinamento di tre numeri in modo crescente
  Copyright: pcosoftware
  Author: P.C.
  Date: 26/10/10 16.29
  Description: il programma mette in ordine decrescente tre numeri interi dati a caso
*/
# include <iostream>
# include <math.h>
# include <stdlib.h>
using namespace std;
int main ( ) {
    int n1, n2, n3, app;
    char quit;
       cout << "Ordinamento di tre numeri in modo decrescente" <<endl;
       cout << endl;
       cout << "dammi il primo numero " <<endl;
       cin >> n1; cout <<endl;
       cout << "dammi il secondo numero " << endl;
       cin >> n2; cout <<endl;
       cout << "dammi il terzo numero " << endl;
       cin >> n3; cout<< endl;
       if (n1 < n2)
        {app = n1;
         n1 = n2;
         n2 = app;
         }
       if (n1 < n3)
         {app = n1;
         n1 = n3;
         n3 = app;
         }
       if (n2 < n3)
         {app = n2;
         n2 = n3;
         n3 = app;
         }
        
       cout << n1 << "  " << n2 << "  " << n3 << endl;
       cin >> quit;
       return 0;
  
   }

 

Esempio di programma in C++: l'esempio si riferisce all'algoritmo MCD e mcm di due numeri

/*
  Name: MCD e mcm di due numeri
  Copyright: pcosoftware
  Author: P.C.
  Date: 26/10/10 16.40 
Description: Calcola il MCD e mcm di due numeri
*/
# include <iostream>
# include <math.h>
# include <stdlib.h>
using namespace std;
int main () {
    int a, b, c, d, r, mcd, mcm;
    char quit;
    cout << " MCD e mcm di due numeri " << endl;
    cout << endl;
    cout << "dammi il primo numero " << endl;
       cin >> a; cout << endl;
    cout << "dammi il secondo numero " << endl;
    cin >> b; cout << endl;
    c = a; d = b;
    do {
           r= c % d;
           c = d;
           d = r;
           }
       while (r!=0);
       mcd = c;
       mcm = a / mcd * b;
       cout << "MCD ---> " << mcd << endl;
       cout << "mcm ---> " << mcm << endl;
         cin >> quit;
       return 0;
  
   }