Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
Problema
Analisi e progettazione:
Diagramma a blocchi
Linguaggio di progetto
Algoritmo
Programmazione:
Linguaggio di programmazione
Programma
Risultati
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.
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.
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
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.
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.
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.
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.
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