Definire la differenza tra linguaggio naturale e linguaggi di programmazione
Il linguaggio è quello che distingue l'essere umano da qualsiasi altra forma di vita e rappresenta l'unico modo per comunicare, ma la cosa si fa un po' più complessa quando occore dialogare con una macchina. Il linguaggio naturale, come lo conosciamo noi, deve fare i conti con lo sviluppo tecnologico e con nuove forme di comunicazione, portandoci a confrontare il linguaggio naturale con quello artificiale. Solitamente in gergo informatico, quando ci si riferisce al linguaggio artificiale si pensa ad un linguaggio di programmazione, utilizzato per creare programmi in grado di compiere delle azioni predeterminate e specifiche. Come il linguaggio naturale, quello artificiale è composto da una serie di regole grammaticali e sintattiche, quindi anche i linguaggi di programmazione hanno un loro lessico.

Un linguaggio di programmazione è caratterizzato da due aspetti importanti:
Le VARIABILI – che rappresentano un dato o una serie di dati, dai valori conosciuti o ignoti ed il cui valore può essere fisso e variabile.
L'ISTRUZIONE – che rappresenta un comando, una funzione o una regola descrittiva
Inoltre un linguaggio di programmazione è caratterizzato anche da altri fattori, quali:
- ESPRESSIONE – che contiene una combinazione di variabili e costanti, unite da operatori
- STRUTTURE – servono per governare e controllare il flusso dell’esecuzione del programma
E' difficile fare una classificazione dei linguaggi di programmazioni, però questi sono suddivisi in due grosse categorie:
- LINGUAGGI AD ALTO LIVELLO
- LINGUAGGI A BASSO LIVELLO
I primi indicano quei linguaggi il cui lessico è facilmente comprensibile all'uomo, spesso vengono utilizzate parole ed espressioni riprese dal linguaggio naturale umano. I secondi, invece, si riferiscono ad una serie di codici alfanumerici simili ad una serie di espressioni la cui comprensione è assolutamente fuori dalla portata di moltissime persone.

I linguaggi ad alto livello sono raggruppati in quattro categorie distinte:
a. IMPERATIVI – il programma è costituito da una sequenza di istruzioni che hanno l’effetto di modificare il contenuto della memoria. Alcuni esempi sono: Pascal, Cobolo, Fortran, ecc..
b. FUNZIONALI – il programma viene considerato come il calcolo del valore di una funzione, ad esempio il linguaggio LisP
c. DICHIARATIVI – il programma è considerato come la dimostrazione della verità di un'asserzione, infatti i linguagg di questo gruppo sono divisi in due step: il primo dichiare cosa fare, il secondo, come
d. ORIENTATI AGLI OGGETTI – il programma è considerato come l'effetto dell'interazione di un insieme di oggetti (dati ed algoritmi che li manipolano) e che comunicano con l’esterno attraverso messaggi. Tra questi ultimi troviamo, ad esempio, il C++, Visual Basic, PHP, Java, ecc...
C’è chi ha visto nei linguaggi artificiali un miglioramento di quelli naturali che necessariamente dovevano essere sviluppati per poter progredire nella tecnologia. C’è chi, invece, ritiene che l'avvento della programmazione porti a un graduale disuso del linguaggio naturale. Una risposta sola forse non c'è, ma rimane un dato di fatto, che il linguaggio artificiale o naturale che sia, permetterà sempre l'attuazione di una delle più grandi conquiste umane: la comunicazione.
