Sei sulla pagina 1di 6

L’evoluzione dei linguaggi di

programmazione
Normalmente con il termine “linguaggio” si intende un certo insieme di simboli e di regole specifiche che
permettono alle persone che conoscono quel determinato linguaggio di esprimersi comunicando tra di loro.
Ad esempio, il linguaggio naturale che tutti noi usiamo è formato da un ben preciso insieme di lettere, parole
e regole grammaticali che ne disciplinano il normale utilizzo. Siccome, però, i computer non capiscono
direttamente il linguaggio naturale è nata pertanto l’esigenza di creare degli appositi linguaggi di
comunicazione chiamati, in gergo, linguaggio macchina e linguaggio di programmazione.

Il linguaggio naturale

Il linguaggio naturale ( natural language o NL ) è una forma di comunicazione sviluppata dagli uomini nel
corso del tempo. E' un linguaggio usato nella comunicazione tra persone che condividono la stessa lingua.
Le lingue umane possono essere veicolate tramite vari mezzi di comunicazione: orale, scritta o simbolica.

Il linguaggio naturale si distingue dal linguaggio di programmazione per computer, perché non è creato
artificialmente. Una lingua nasce, evolve e cambia in modo naturale nel corso del tempo.
Sono le stesse persone ad apportare continuamente modifiche al linguaggio che, una volta accettate da tutti,
entrano a far parte della lingua
Linguaggi di Programmazione

Cos'è un programma:
formulazione di un algoritmo attraverso un linguaggio di programmazione in un codice eseguibile
dal computer

Uso dei linguaggi di programmazione

Problema
Analisi e progettazione:
Diagramma a blocchi
Linguaggio di progetto

Algoritmo

Programmazione:
Linguaggio di programmazione

Programma

Risultati

Linguaggio naturale , linguaggio macchina (o a basso livello) e linguaggio di


programmazione ad alto livello

La comunicazione uomo macchina avviene attraverso formalismi che assumono la forma di un


linguaggio.

Caratteristiche del linguaggio naturale:


 Ricchezza espressiva (vantaggio)
 Ambiguità e ridondanza (svantaggi)

Caratteristiche del linguaggio macchina:


 legato alla caratteristica fisica del calcolatore(CPU)
 potente e veloce
 Programmi lunghi e di difficile scrittura
 Difficoltà di messa a punto del programma.

Caratteristiche dei linguaggi di programmazione

 Linguaggio intermedio tra il linguaggio macchina e il linguaggio naturale


 Descrive gli algoritmi con una ricchezza espressiva comparabile a quella del linguaggio
naturale senza essere ambiguo e in modo rigoroso.Linguaggio di programmazione è dotato
di un insieme di regole per scrivere programmi per computer e composta da un insieme di
istruzioni che a partire dai dati di input si arrivi ad un insieme di dati di output.

Il linguaggio macchina

Il linguaggio macchina è il codice in cui sono scritti i programmi eseguibili del computer detto anche codice
macchina. Il linguaggio macchina si basa sull'alfabeto binario: i simboli dell’alfabeto utilizzato non sono 21
come avviene nel nostro linguaggio bensì solamente due, ovvero 0 e 1, attraverso i quali risulta comunque
possibile produrre le parole e, di conseguenza, le frasi da utilizzare. Il linguaggio macchina  permette
al processore del PC di eseguire i comuni programmi del computer.

1. La compatibilità del linguaggio macchina

Il linguaggio macchina dipende dall'architettura hardware del computer. Varia a seconda del processore
( CPU ). Pertanto, non esiste un unico linguaggio macchina. Un programma scritto in linguaggio macchina
per un'architettura, non funziona in un'altra architettura. Per funzionare programma deve essere riscritto
ex novo.

2. Pro e contro del codice macchina

Uno dei punto di forza del linguaggio macchina è sicuramente la velocità di esecuzione del programma. Il
processore legge ed esegue i comandi. Non deve perdere tempo a interpretarli. D'altra parte, essendo scritto
in linguaggio binario, il codice macchina è decisamente poco comprensibile per l'uomo.

Ecco un esempio pratico di codice macchina: 10011100 00101100 10010110 10101101 10110101
11010101 01001001 11011001 01100010 01001011 10010011 10010110

Per programmare in linguaggio macchina bisogna conoscere l'hardware del processore. Soltanto i
programmatori più esperti hanno le conoscenze per farlo.
In alternativa al linguaggio macchina si può utilizzare un linguaggio assembly.

Il linguaggio assembly

L'assembly (spesso chiamato anche  assembler) è un linguaggio di programmazione di basso livello*.


Ecco un esempio pratico di assembly: MOV AL,61h MOV CL,3h MOV DL,7h
E' più comprensibile per un essere umano rispetto al linguaggio macchina e abbastanza veloce da eseguire
per il computer.Il linguaggio Assembly verrà tradotto in codice macchina dal programma Assemblatore.

1. La differenza tra linguaggio macchina e assembly.

A volte l'assembly viene confuso con il linguaggio macchina. E' sbagliato. L'assembly è un linguaggio di
programmazione, composto da istruzioni mnemoniche. Il linguaggio macchina è invece composto da
stringhe di bit. E' comunque difficile da utilizzare e ancora poco intuitivo per i programmatori junior. Per
questa ragione, spesso si ricorre ai linguaggi di programmazione di alto livello* per sviluppare i programmi.
I linguaggi di programmazione di alto livello

I linguaggi di programmazione sono molto più intuitivi dell'assembly. Perlomeno, sono più leggibili agli occhi
di un programmatore.
Tra i linguaggi di programmazione meno recenti il BASIC , il COBOL, il C, il Pascal ed il Fortran;
tra i linguaggi di programmazione più recenti ci sono invece Java , C++ , Python , Visual Basic e Ruby.
Per gli utenti possono comunque apparire incomprensibili, perché sono diversi dal linguaggio naturale delle
persone.

Ogni linguaggio di programmazione ha una propria sintassi e regole da rispettare.

Programma sorgente
Il programma scritto usando le regole di un determinato linguaggio di programmazione viene chiamato
programma sorgente.

Per realizzare un programma sorgente ogni linguaggio utilizza un editor , ossia un programma che fornisce
lo schema e i menù di gestione ed esecuzione dei programmi in scrittura per la fase della generazione di un
programma sorgente.
Per la realizzazione del programma sorgente , utilizzando un linguaggio di programmazione, il
programmatore utilizza:
 un insieme di parole chiavi ossia parole che hanno un significato particolare e che indicano azioni
specifiche dette anche istruzioni.
 caratteri speciali (. ; spazio)
 regole sintattiche che permettono l'organizzazione delle parole che formano frasi per indicare le
azioni che devono essere compiute.
Le parole chiavi e i caratteri speciali devono essere usati esclusivamente solo nel significato utile alla
costruzione del programma.

Qual è il principale vantaggio dei linguaggi di alto livello?

Il codice sorgente di un programma scritto in un linguaggio di alto livello può essere compilato su più
architetture. E' sufficiente usare il compilatore dell'architettura del processore in questione per ottenere il file
eseguibile in linguaggio macchina di quella architettura. Quindi, non c'è bisogno di riscrivere il programma.

2. E lo svantaggio?

Un programma scritto in un linguaggio di alto livello non è direttamente eseguibile dal computer. Per essere
eseguito deve essere trasformato in linguaggio macchina.

Come trasformare un programma sorgente in codice macchina?

Esistono principalmente due strade.

 Alcuni linguaggi usano dei software compilatori per creare un file oggetto eseguibile dal codice
sorgente.
 Altri linguaggi di programmazione, invece, utilizzano dei software interprete che trasformano le
istruzioni in codice macchina durante l'esecuzione del programma. I programmi interpretati sono
decisamente più lenti e meno efficienti rispetto a quelli compilati.

Il compilatore e l’interprete sono entrambi programmi in grado di tradurre le istruzioni di un programma scritto
in un linguaggio di programmazione ad alto livello detto programma sorgente (o codice sorgente), in
istruzioni comprensibili al computer ossia in istruzioni di un programma scritto in linguaggio macchina detto
programma oggetto (sequenze di ‘0’ ed ‘1’ comprensibili per l’elaboratore). Entrambi dunque sono in pratica
dei programmi traduttori ma sono profondamente diversi nel funzionamento perché:

1. I compilatori sono programmi che accettano in input un intero programma scritto in linguaggio ad alto
livello (programma o codice sorgente) e lo traducono interamente in un programma scritto in
linguaggio macchina (programma o codice oggetto);
2. Gli interpreti sono programmi che accettano in input le singole istruzioni di un programma scritto in
linguaggio ad alto livello e le traducono una alla volta in singole istruzioni in linguaggio macchina.

Riassumendo le differenze principali tra compilatore e interprete sono le seguenti.

Compilatore
 Il programma compilatore analizza e traduce nella sua interezza il programma sorgente.
 Il risultato della compilazione è un programma oggetto.
 Solo dopo la traduzione dell’intero programma è possibile eseguirlo

Interprete
 Il programma interprete analizza e traduce istruzione per istruzione in linguaggio macchina.
 Non appena una istruzione è interpretata può essere eseguita.

In sintesi:

Legenda:
*linguaggio di basso livello

 Sono leggibili dalle macchine e non sono vicini al linguaggio umano


 Coinvolge la gestione della memoria
 Gli esempi includono il linguaggio il codice macchina e assembly
*linguaggio di alto livello
 Sono più vicini ai linguaggi umani e sono più leggibili
 Non si occupa della gestione della memoria
 Gli esempi includono: Java, Python, C e C ++

Potrebbero piacerti anche