Lo sviluppo del software e i
linguaggi di programmazione
Corso di sistemi
Classe 3
ciclo di sviluppo del software
Problema
Utente
realizza
progetta
Analista
Programmatore
ciclo di sviluppo del software
utente
PASCA
L
applicazione
Programmatore
Linker
Compilatore
Program Pippo;
var a,b,c : integer;
Begin
readln(a);
readln(b);
c:=a+b;
writeln(c);
End.
Programma sorgente
01010101
01101110
10011101
00101010
01010101
01101110
10011101
00101010
COMPILAZIONE
.
.
.
.
00100000
Programma oggetto
.
.
.
LINK
.
00100000
01101110
10011101
00101010
Programma eseguibile
Programma sorgente
Program Pippo;
var a,b,c : integer;
Begin
readln(a);
readln(b);
c:=a+b;
writeln(c);
End.
La compilazione
Compilatore
SENZA ERRORI
01010101
01101110
10011101
00101010
.
.
.
.
00100000
ERRORI
Programma oggetto
Correzioni
Programma sorgente
Program Pippo;
var a,b,c : integer;
Begin
readln(a);
reodln(b);
c=a+b;
writeln(c);
End.
readln(b);
Correzioni
c:=a+b;
La compilazione
Compilatore
Segnalazione errori
ERRORI
Linguaggio di programmazione
In
informatica,
un
linguaggio
di
programmazione è un linguaggio formale
dotato di una sintassi ben definita.
Un linguaggio di programmazione
utilizzato per scrivere programmi.
ALFABETO
REGOLE
GRAMMATICALI
REGOLE SINTATTICHE E
SEMANTICHE
viene
Program Pippo;
var a,b,c : integer;
Begin
readln(a);
readln(b);
c:=a+b;
writeln(c);
End.
Linguaggio di alto e basso livello
Ogni calcolatore è caratterizzato da un linguaggio di programmazione di basso livello
o linguaggio macchina, il cui testo è una sequenza di bit che il processore
interpreta, secondo un funzionamento dettato dalla sua struttura fisica, eseguendo
una sequenza di azioni.
Tuttavia, con il termine linguaggio di programmazione ci si riferisce più
frequentemente ai linguaggi di programmazione ad alto livello, che sono più vicini al
linguaggio umano scritto (e quindi facilitano il lavoro dei programmatori) e che hanno
però la proprietà di poter essere ricondotti, in maniera non ambigua, al linguaggio
macchina. Detta riconducibilità costituisce la base per la interpretazione o
compilazione del linguaggio stesso.
Istruzione scritta in
linguaggio ad alto livello
Istruzione scritta in linguaggio a
basso livello ( l. macchina)
COMPILAZIONE (INTERPRETAZIONE)
Linguaggio di alto e basso livello
Istruzione scritta in linguaggio ad
alto livello (PASCAL)
significa
Leggi un dato dalla tastiera e
memorizzalo in una cella di
memoria chiamata “a”
Istruzioni scritte in linguaggio macchina
Caratteristiche dei linguaggi di programmazione
ALFABETO
Insieme di simboli come A,B,…, Z, a,b,…,z, 0,1,2,…,9, +,,:,/,* ecc. ecc.
GRAMMATICA
Insieme di regole che permettono di scrivere correttamente parole e frasi. Le
parole vengono costruite a partire dai simboli dell’alfabeto, devono essere
costruite rispettando le regole della specifica grammatica ed essere presenti
nel vocabolario del linguaggio.
Es. READLN è una parola accettabile
Aµ non è una parola accettabile (il simbolo µ non fa parte dell’alfabeto)
SINTATTASSI
Insieme di regole che obbligano a costruire frasi sintatticamente
corrette.
Es. READLN(a); è una frase corretta
(a)READLN; non è una frase accettabile
Ogni linguaggio possiede un proprio alfabeto, una grammatica e sintassi
Concetti chiave
VARIABILE
ISTRUZIONE
COSTANTE
OPERATORE
ESPRESSIONE
Concetti chiave
VARIABILE
Un dato o un insieme di dati, noti o ignoti, già
memorizzati o da memorizzare; ad una variabile
corrisponde sempre, da qualche parte, un certo
numero (fisso o variabile) di locazioni di memoria
che vengono allocate, cioè riservate, per contenere
i dati stessi. Molti linguaggi inoltre attribuiscono alle
variabili un tipo, con differenti proprietà (stringhe di
testo, numeri, liste, atomi ecc.). Utilizzando un
linguaggio simbolico ad ogni variabile viene dato
un nome. Il valore del dato può essere modificato
durante l’elaborazione.
Concetti chiave
COSTANTE
Un dato noto che non cambierà il suo valore durante
l’elaborazione . Utilizzando un linguaggio simbolico ad ogni
costante viene assegnato un valore (numerico/alfanumerico).
Concetti chiave
OPERATORE
Un operatore è un oggetto
(rappresentato da uno o più simboli)
che agisce su una coppia di dati (o su
un singolo dato), detti operandi,
ottenendo un nuovo dato (risultato
dell'operazione).
Concetti chiave
Una combinazione di variabili e
costanti, unite da operatori;
ESPRESSIONE
Concetti chiave
Un comando, una azione concreta, oppure
una regola descrittiva.
Il concetto di istruzione è molto variabile fra
classi di linguaggi diverse. A prescindere dal
particolare linguaggio però, ogni volta che
un'istruzione viene eseguita, lo stato interno
del calcolatore cambia.
ISTRUZIONE
istruzione dichiarativa
istruzione operativa
Un livello intermedio
LINGUAGGIO AD ALTO LIVELLO
LINGUAGGIO ASSEMBLY
LINGUAGGIO MACCHINA
Scarica

Compilatori - Sito ITI Mattei