Unità E3
Evoluzione dei linguaggi di
programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo
Obiettivi
• Conoscere le diverse categorie in cui si
dividono i linguaggi di programmazione
(linguaggi macchina, linguaggi
assembler, linguaggi ad alto livello,
linguaggi orientati agli oggetti)
• Conoscere i concetti di base dei
traduttori, compilatori e interpreti
© 2007 SEI-Società Editrice Internazionale, Apogeo
I linguaggi di programmazione
• I linguaggi di programmazione sono linguaggi
formali in cui i singoli elementi e le regole di
costruzione sintattica sono definiti in una
grammatica, e possono essere classificati in base
alla loro vicinanza al pensiero umano.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Linguaggi macchina
• Il linguaggio che un computer è in grado di eseguire
direttamente è il linguaggio macchina all’interno del
quale i programmi, il codice oggetto, sono costituiti
da una sequenza di cifre binarie che codificano le
istruzioni e i dati.
• A ogni istruzione in linguaggio macchina corrisponde
un’operazione direttamente eseguibile dal
processore.
• Le istruzioni sono strettamente legate all’architettura
dell’elaboratore
• Ogni istruzione è costituita da un codice operativo e
dagli operandi.
• Le istruzioni sono difficili da interpretare per l’uomo,
ma facili per la macchina
© 2007 SEI-Società Editrice Internazionale, Apogeo
Linguaggi Assembler
• Le istruzioni sono ancora legate alla macchina, ma
sono rappresentate in un codice mnemonico, più
facilmente leggibile dal programmatore.
• I programmi assembler, per essere eseguiti, devono
essere tradotti in linguaggio macchina.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Linguaggi ad alto livello
• Hanno una sintassi precisa ma le loro
istruzioni utilizzano simboli matematici e
seguono il modo di ragionare e di esprimersi
dell’uomo
• Per essere eseguiti dalla macchina devono
essere tradotti in linguaggio macchina.
• Tra i più famosi linguaggi ad alto livello
troviamo: COBOL, Fortran, Pascal e C.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Linguaggi ad alto livello (esempio)
• Nei linguaggi ad alto livello come il C
un’istruzione che somma due valori si
scrive nel modo seguente:
– a = a+b;
• Con a e b non si fa riferimento a
locazioni fisiche della memoria del
computer ma a variabili identificate da
un nome e alle quali possono essere
assegnati valori.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Linguaggi orientati agli oggetti
• C++ e Java sono linguaggi per la
programmazione orientata agli oggetti
(OOP, Object Oriented Programming).
• I linguaggi a oggetti si differenziano dagli altri
linguaggi ad alto livello soprattutto perché
consentono di modellare, in modo più
naturale per l’uomo, gli elementi della realtà
che deve essere rappresentata nella
soluzione dei problemi.
• Un oggetto è un elemento concreto definito
dalle sue caratteristiche e dai suoi
comportamenti.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Traduttori
• Tutti i programmi non scritti in
linguaggio macchina per essere eseguiti
devono essere tradotti.
• L’operazione di traduzione viene
eseguita in modo automatico da
programmi traduttori resi disponibili
spesso dalle stesse case costruttrici dei
computer.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Assemblatori
• Un programma assembler per essere
eseguito viene tradotto in linguaggio
macchina da appositi programmi detti
assemblatori
© 2007 SEI-Società Editrice Internazionale, Apogeo
Compilatori
• Un programma in un linguaggio ad alto livello,
(codice sorgente) per essere eseguito deve
essere tradotto in linguaggio macchina:
questo compito viene svolto da appositi
programmi detti compilatori
© 2007 SEI-Società Editrice Internazionale, Apogeo
Fasi
• Sono presenti due fasi distinte: compilazione ed esecuzione.
• Nel momento in cui si sta realizzando e provando il programma
sarà necessario ripetere le due fasi, in modo da verificare
l’effetto delle modifiche apportate al codice.
• Successivamente il programma verrà utilizzato ed eseguito
direttamente in codice oggetto.
• Una nuova traduzione sarà necessaria soltanto se verranno
effettuate modifiche al programma originario.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Interpreti
• Per alcuni linguaggi le fasi di compilazione ed esecuzione non
sono distinte, ma ogni istruzione del codice sorgente viene
tradotta e poi eseguita.
• Anche se il codice sorgente non è stato modificato, tutte le volte
che si esegue il programma in realtà lo si traduce e lo si esegue.
• Nel primo caso si parla di linguaggi compilati nel secondo di
linguaggi interpretati.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Scarica

linguaggio macchina