Marco Lazzari – Informatica generale 1

Università degli Studi di Bergamo
Facoltà di Lingue e Letterature Straniere
Facoltà di Lettere e Filosofia
Informatica generale 1
Appunti del corso
A.A. 2002-2003
Lezione 10
Marco Lazzari
Compilatori e interpreti
Moltiplica due numeri
Somma due numeri
Somma 1 ad un numero

traduzione dal linguaggio ad alto
livello al linguaggio macchina
Marco Lazzari – Informatica generale 1
Compilatori e interpreti


compilatore: una traduzione, più
esecuzioni; dal file sorgente del
programma genera un file eseguibile
mioprog.c  mioprog.exe
interprete: traduzione al volo
(simultanea)
Marco Lazzari – Informatica generale 1
Linguaggi ad alto
livello
vocabolario (parole chiave,
operatori, identificatori, ...)
 sintassi
 rappresentazione dei dati (tipi di
dati elementari o complessi)

Marco Lazzari – Informatica generale 1
Linguaggi ad alto
livello
calcolo scientifico: FORTRAN
(Pascal)
 applicazioni gestionali: COBOL
 interfacce grafiche: Visual XYZ
 intelligenza artificiale: LISP,
Prolog
 ...

Marco Lazzari – Informatica generale 1
Linguaggi ad alto
livello

BASIC (alto?)
10 Totale = 0
20 INPUT "Quante cifre vuoi
sommare?";n
30 FOR k = 1 TO n
40 INPUT "Immetti cifra",n
50 Totale = Totale + n
60 NEXT k
70 PRINT
80 PRINT "Il totale è: "; Totale
Marco Lazzari – Informatica generale 1
Linguaggi ad alto
livello
 Pascal
program totale;
var k, n, totale: integer;
begin
k := 1;
write('Quante cifre vuoi sommare?');
readln(n);
for k := 1 to n do
begin
write('Immetti cifra: ');
readln(c);
totale := totale + c
end
writeln('Il totale è: ', totale);
end.
Marco Lazzari – Informatica generale 1
Linguaggi
alfabeto: i simboli per costruire
le frasi del linguaggio; lessico:
sequenze di simboli che
compongono le parole del
linguaggio; parole chiave (if
then else begin end …)
 sintassi: definisce le frasi ben
formate del linguaggio
 semantica: definisce il
significato dei costrutti
grammaticali

Marco Lazzari – Informatica generale 1
Programmazione
problema, analisi, algoritmo,
programma
 algoritmo: insieme ordinato di
passi, che descrive i dati che si
usano e la sequenza di azioni
elementari per risolvere un
problema
 diagrammi di flusso: un
linguaggio grafico per la
descrizione di algoritmi

Marco Lazzari – Informatica generale 1
Diagrammi di flusso: i
blocchi
START
END
I/O
V
AZIONE
F
CONDIZ.
Marco Lazzari – Informatica generale 1
START
START
START
dati A e B
dati A e B
dati A e B
C := A + B
C := A * B
C := A DIV B
risultato C
risultato C
risultato C
END
END
END
somma
prodotto
divisione intera
di due numeri di due numeri di due numeri
Marco Lazzari – Informatica generale 1
stampa 30 volte
la parola TRE
START
C := 1
stampa “TRE”
C = 30
V
END
F
C := C + 1
Marco Lazzari – Informatica generale 1
START
stampa NUMERO
volte la parola
PAROLA
(NUMERO e
PAROLA sono
valori di ingresso
per il programma)
dati PAROLA e NUMERO
C := 1
stampa PAROLA
C = NUMERO
V
END
Marco Lazzari – Informatica generale 1
F
C := C + 1
esegue
operazioni
misteriose
usando un
registro
d’appoggio
START
dati A B C
REG := A + B
V
REG > C
F
REG := C - REG
stampa REG
END
Marco Lazzari – Informatica generale 1
AeB>0
somma due
numeri avendo a
disposizione solo
l’operazione di
START
incremento
unitario
dati A B
(macchina a
strati)
RIS := A; CON := 1
RIS := RIS + 1
V
CON = B
stampa RIS
END
Marco Lazzari – Informatica generale 1
F
CON := CON + 1
AeB>0
moltiplica due
numeri avendo
a disposizione
solo
START
l’operazione di
somma
dati A B
(macchina a
strati)
RIS := 0; CON := 1
RIS := RIS + A
V
stampa RIS
F
CON = B
CON := CON + 1
END
Marco Lazzari – Informatica generale 1
Dal diagramma al
programma
START
azione 1
begin
<azione 1>
<azione 2>
end
azione 2
END
Marco Lazzari – Informatica generale 1
Dal diagramma al
programma
V
F
condizione
azione 1
azione 2
if <condizione>
then <azione 1>
else <azione 2>
Marco Lazzari – Informatica generale 1
Dal diagramma al
programma
V
F
condizione
azione 1
while <condizione>
do <azione 1>
Marco Lazzari – Informatica generale 1