Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Computer, algoritmi e
linguaggi
c 2005-2010 Pearson Education Italia Capitolo 1 - 1 / 71
Informazioni sul corso
c 2005-2010 Pearson Education Italia Capitolo 1 - 2 / 71
Esami – 1
Struttura dell’esame
1 L’esame di Programmazione consiste di una prova scritta, di una
prova di laboratorio e di un colloquio.
2 Nella prova scritta viene richiesta la soluzione di alcuni esercizi (sullo
stile di quelli presenti nel libro di testo e proposti nei compitini).
3 Nella prova di laboratorio viene richiesta la scrittura di codice che
soddisfi specifiche assegnate. Per partecipare alla prova di laboratorio
è necessario disporre di un account presso il SiLab.
4 Il colloquio verterà sui contenuti del corso. Oltre alla padronanza
degli argomenti, nella prova orale si verificherà la capacità di
esprimere correttamente e con termini appropriati i concetti appresi.
c 2005-2010 Pearson Education Italia Capitolo 1 - 3 / 71
Esami – 2
c 2005-2010 Pearson Education Italia Capitolo 1 - 4 / 71
Esami – 3
c 2005-2010 Pearson Education Italia Capitolo 1 - 5 / 71
Esami – 4
Compitini
1 Sulla base dei risultati ottenuti nei compitini lo studente può essere
esonerato dalla prova scritta ed eventualmente dalla prova orale.
2 In caso di esonero dalla prova orale, il voto finale proposto sarà
comunicato dopo il superamento della prova di laboratorio.
3 È necessario che lo studente si presenti alla prova orale per la
verbalizzazione del risultato.
4 Lo studente ha comunque la facoltà di sostenere la prova orale.
c 2005-2010 Pearson Education Italia Capitolo 1 - 6 / 71
Introduzione
1 Computer, algoritmi e programmi
Computer, algoritmi e programmi
Evoluzione della programmazione
Finalità del corso
Rappresentazione dell’informazione
2 Dal linguaggio macchina ai linguaggi ad alto livello
La macchina di Von Neumann
Componenti principali di un computer
I linguaggi ad alto livello
Java Virtual Machine (JVM)
Strumenti per la stesura dei programmi
3 La programmazione strutturata
Le strutture di controllo fondamentali
Variabili e assegnamenti
4 Sintassi e semantica
Grammatiche
Lessico del linguaggio Java
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 7 / 71
Sommario: Computer, algoritmi e linguaggi
1 Computer, algoritmi e programmi
Computer, algoritmi e programmi
Evoluzione della programmazione
Finalità del corso
Rappresentazione dell’informazione
2 Dal linguaggio macchina ai linguaggi ad alto livello
La macchina di Von Neumann
Componenti principali di un computer
I linguaggi ad alto livello
Java Virtual Machine (JVM)
Strumenti per la stesura dei programmi
3 La programmazione strutturata
Le strutture di controllo fondamentali
Variabili e assegnamenti
4 Sintassi e semantica
Grammatiche
Lessico del linguaggio Java
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 8 / 71
Computer e programmi
Programmazione
Codifica del procedimento risolutivo di un problema (algoritmo) in un
insieme di istruzioni (programma) destinate ad un esecutore (macchina)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 9 / 71
Computer e programmi
Programmazione
Codifica del procedimento risolutivo di un problema (algoritmo) in un
insieme di istruzioni (programma) destinate ad un esecutore (macchina)
21 5 9 10 13 2 6
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 9 / 71
Computer e programmi
Programmazione
Codifica del procedimento risolutivo di un problema (algoritmo) in un
insieme di istruzioni (programma) destinate ad un esecutore (macchina)
21 5 9 10 13 2 6
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 9 / 71
Computer e programmi
Programmazione
Codifica del procedimento risolutivo di un problema (algoritmo) in un
insieme di istruzioni (programma) destinate ad un esecutore (macchina)
21 5 9 10 13 2 6
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 9 / 71
Computer e programmi
Programmazione
Codifica del procedimento risolutivo di un problema (algoritmo) in un
insieme di istruzioni (programma) destinate ad un esecutore (macchina)
21 5 9 10 13 2 6
Algoritmo
Insieme ordinato di passi eseguibili (non manipolo oggetti infiniti) e non
ambigui che definiscono un processo terminante (no cicli infiniti).
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 10 / 71
Algoritmi
Algoritmo
Insieme ordinato di passi eseguibili (non manipolo oggetti infiniti) e non
ambigui che definiscono un processo terminante (no cicli infiniti).
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 10 / 71
L’algoritmo di Euclide
Calcola il massimo comun divisore (MCD) fra due numeri interi x e y
(x ≥ y > 0)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 11 / 71
L’algoritmo di Euclide
Calcola il massimo comun divisore (MCD) fra due numeri interi x e y
(x ≥ y > 0)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 11 / 71
L’algoritmo di Euclide
Calcola il massimo comun divisore (MCD) fra due numeri interi x e y
(x ≥ y > 0)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 11 / 71
L’algoritmo di Euclide
Calcola il massimo comun divisore (MCD) fra due numeri interi x e y
(x ≥ y > 0)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 11 / 71
L’algoritmo di Euclide
Calcola il massimo comun divisore (MCD) fra due numeri interi x e y
(x ≥ y > 0)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 11 / 71
L’algoritmo di Euclide
Calcola il massimo comun divisore (MCD) fra due numeri interi x e y
(x ≥ y > 0)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 11 / 71
L’algoritmo di Euclide
Calcola il massimo comun divisore (MCD) fra due numeri interi x e y
(x ≥ y > 0)
È un algoritmo?
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 12 / 71
Un esempio negativo
È un algoritmo?
Non lo è
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 12 / 71
Algoritmi e programmi
Programma
È la codifica di un algoritmo in un linguaggio che un esecutore è in grado
di eseguire su una data macchina senza bisogno di ulteriori spiegazioni
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 13 / 71
Evoluzione della programmazione
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 14 / 71
Evoluzione della programmazione
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 14 / 71
Evoluzione della programmazione
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 14 / 71
Evoluzione della programmazione
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 14 / 71
Evoluzione della programmazione
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 14 / 71
Evoluzione della programmazione
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 14 / 71
Evoluzione della programmazione
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 14 / 71
Evoluzione della programmazione (cont.)
Tendenza generale
Il linguaggio si astrae dalle caratteristiche della macchina
Programmazione strutturata → struttura nel codice
Programmazione ad oggetti → struttura nei dati
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 15 / 71
Evoluzione della programmazione (cont.)
Tendenza generale
Il linguaggio si astrae dalle caratteristiche della macchina
Programmazione strutturata → struttura nel codice
Programmazione ad oggetti → struttura nei dati
Programmazione ad oggetti
Idea di fondo: disegno il software attorno agli oggetti manipolati
piuttosto che attorno alle azioni eseguite sugli oggetti
Approccio giustificato perché si parte dal problema (dato) e non dalla
soluzione (algoritmo)
La rappresentazione dei dati (oggetto) è più stabile rispetto al codice
che implementa le operazioni su di esso
Posso usare oggetti semplici per costruire oggetti più complessi (riuso
del software)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 15 / 71
Finalità del corso
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 16 / 71
Finalità del corso
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 16 / 71
Rappresentazione dell’informazione
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 17 / 71
Rappresentazione di numeri e caratteri
Con n bit posso rappresentare al più 2n interi distinti
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 18 / 71
Rappresentazione di numeri e caratteri
Con n bit posso rappresentare al più 2n interi distinti
n=3 → 23 = 8
000 001 010 011 100 101 110 111
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 18 / 71
Rappresentazione di numeri e caratteri
Con n bit posso rappresentare al più 2n interi distinti
n=3 → 23 = 8
000 001 010 011 100 101 110 111
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 18 / 71
Rappresentazione di numeri e caratteri
Con n bit posso rappresentare al più 2n interi distinti
n=3 → 23 = 8
000 001 010 011 100 101 110 111
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 18 / 71
Rappresentazione di numeri e caratteri
Con n bit posso rappresentare al più 2n interi distinti
n=3 → 23 = 8
000 001 010 011 100 101 110 111
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 18 / 71
Rappresentazione di numeri e caratteri
Con n bit posso rappresentare al più 2n interi distinti
n=3 → 23 = 8
000 001 010 011 100 101 110 111
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 18 / 71
I multipli del bit
1 byte = 8 bit
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 19 / 71
I multipli del bit
1 byte = 8 bit
Kilobyte 210 (circa 103 ) byte. Una pagina web statica
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 19 / 71
I multipli del bit
1 byte = 8 bit
Kilobyte 210 (circa 103 ) byte. Una pagina web statica
Megabyte 220 (circa 106 ) byte. Una fotografia digitale
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 19 / 71
I multipli del bit
1 byte = 8 bit
Kilobyte 210 (circa 103 ) byte. Una pagina web statica
Megabyte 220 (circa 106 ) byte. Una fotografia digitale
Gigabyte 230 (circa 109 ) byte. Un banco di memoria RAM
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 19 / 71
I multipli del bit
1 byte = 8 bit
Kilobyte 210 (circa 103 ) byte. Una pagina web statica
Megabyte 220 (circa 106 ) byte. Una fotografia digitale
Gigabyte 230 (circa 109 ) byte. Un banco di memoria RAM
Terabyte 240 (circa 1012 ) byte. Un disco fisso esterno
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 19 / 71
I multipli del bit
1 byte = 8 bit
Kilobyte 210 (circa 103 ) byte. Una pagina web statica
Megabyte 220 (circa 106 ) byte. Una fotografia digitale
Gigabyte 230 (circa 109 ) byte. Un banco di memoria RAM
Terabyte 240 (circa 1012 ) byte. Un disco fisso esterno
Petabyte 250 (circa 1015 ) byte. Un datacenter
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 19 / 71
I multipli del bit
1 byte = 8 bit
Kilobyte 210 (circa 103 ) byte. Una pagina web statica
Megabyte 220 (circa 106 ) byte. Una fotografia digitale
Gigabyte 230 (circa 109 ) byte. Un banco di memoria RAM
Terabyte 240 (circa 1012 ) byte. Un disco fisso esterno
Petabyte 250 (circa 1015 ) byte. Un datacenter
Exabyte 260 (circa 1018 ) byte. Traffico mobile dati nel mondo al mese
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 19 / 71
I multipli del bit
1 byte = 8 bit
Kilobyte 210 (circa 103 ) byte. Una pagina web statica
Megabyte 220 (circa 106 ) byte. Una fotografia digitale
Gigabyte 230 (circa 109 ) byte. Un banco di memoria RAM
Terabyte 240 (circa 1012 ) byte. Un disco fisso esterno
Petabyte 250 (circa 1015 ) byte. Un datacenter
Exabyte 260 (circa 1018 ) byte. Traffico mobile dati nel mondo al mese
Zettabyte 270 (circa 1021 ) byte. Tutto il web
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 19 / 71
Sommario: Computer, algoritmi e linguaggi
1 Computer, algoritmi e programmi
Computer, algoritmi e programmi
Evoluzione della programmazione
Finalità del corso
Rappresentazione dell’informazione
2 Dal linguaggio macchina ai linguaggi ad alto livello
La macchina di Von Neumann
Componenti principali di un computer
I linguaggi ad alto livello
Java Virtual Machine (JVM)
Strumenti per la stesura dei programmi
3 La programmazione strutturata
Le strutture di controllo fondamentali
Variabili e assegnamenti
4 Sintassi e semantica
Grammatiche
Lessico del linguaggio Java
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 20 / 71
Il Computer
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 21 / 71
Il Computer
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 21 / 71
Il Computer
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 21 / 71
Il Computer
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 22 / 71
La macchina di Von Neumann (1946)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 22 / 71
La macchina di Von Neumann (1946)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 22 / 71
Hardware
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 23 / 71
Hardware
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 23 / 71
Hardware
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 23 / 71
Hardware (cont.)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 24 / 71
Hardware (cont.)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 24 / 71
Hardware (cont.)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 24 / 71
Software
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 25 / 71
Software
Sistema operativo
Mette a disposizione e amministra le risorse del computer
Esecuzione comandi tramite shell o desktop
Accesso alle risorse (CPU, memoria e periferiche)
Condivisione ottimale delle risorse fra più processi utilizzatori
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 25 / 71
Software
Sistema operativo
Mette a disposizione e amministra le risorse del computer
Esecuzione comandi tramite shell o desktop
Accesso alle risorse (CPU, memoria e periferiche)
Condivisione ottimale delle risorse fra più processi utilizzatori
Utility e SW di base
Consentono all’utente di effettuare delle attività di gestione
Copiatura e compressione file, sicurezza, sviluppo codice
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 25 / 71
Software
Sistema operativo
Mette a disposizione e amministra le risorse del computer
Esecuzione comandi tramite shell o desktop
Accesso alle risorse (CPU, memoria e periferiche)
Condivisione ottimale delle risorse fra più processi utilizzatori
Utility e SW di base
Consentono all’utente di effettuare delle attività di gestione
Copiatura e compressione file, sicurezza, sviluppo codice
Programmi applicativi
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 25 / 71
Linguaggio macchina e assembler
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 26 / 71
Linguaggio macchina e assembler
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 26 / 71
Linguaggio macchina e assembler
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 26 / 71
Linguaggio macchina e assembler
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 26 / 71
Linguaggio macchina e assembler
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 26 / 71
Un assembler “giocattolo”
Istruzioni di trasferimento :
LOAD R, x STORE R, y ...
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 27 / 71
Un assembler “giocattolo”
Istruzioni di trasferimento :
LOAD R, x STORE R, y ...
Istruzioni aritmetico-logiche
ADD R1, R2 MUL R1, R2 ...
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 27 / 71
Un assembler “giocattolo”
Istruzioni di trasferimento :
LOAD R, x STORE R, y ...
Istruzioni aritmetico-logiche
ADD R1, R2 MUL R1, R2 ...
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 27 / 71
L’algoritmo di Euclide
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 28 / 71
L’algoritmo di Euclide
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 28 / 71
Correttezza dell’algoritmo di Euclide
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 29 / 71
Correttezza dell’algoritmo di Euclide
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 29 / 71
Correttezza dell’algoritmo di Euclide
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 29 / 71
Correttezza dell’algoritmo di Euclide
x yk + q yk q
= = +
g g g g
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 29 / 71
Correttezza dell’algoritmo di Euclide
x yk + q yk q
= = +
g g g g
Dato che (yk)/g e (yk)/g + q/g sono entrambi interi, anche q/g è
intero
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 29 / 71
Correttezza dell’algoritmo di Euclide
x yk + q yk q
= = +
g g g g
Dato che (yk)/g e (yk)/g + q/g sono entrambi interi, anche q/g è
intero
Quindi g è anche il massimo comun divisore fra y e q = x%y
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 29 / 71
L’algoritmo di Euclide in assembler
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 30 / 71
Svantaggi del linguaggio macchina
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 31 / 71
Svantaggi del linguaggio macchina
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 31 / 71
Svantaggi del linguaggio macchina
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 31 / 71
Svantaggi del linguaggio macchina
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 31 / 71
Richiamo
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 32 / 71
I linguaggi ad alto livello
Linguaggi di programmazione
Insiemi di regole per costruire sequenze di istruzioni (cioè programmi)
che possono essere direttamente eseguite da una macchina
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 33 / 71
I linguaggi ad alto livello
Linguaggi di programmazione
Insiemi di regole per costruire sequenze di istruzioni (cioè programmi)
che possono essere direttamente eseguite da una macchina
Macchina fisica
È il processore, cioè l’esecutore dei programmi in linguaggio macchina
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 33 / 71
I linguaggi ad alto livello
Linguaggi di programmazione
Insiemi di regole per costruire sequenze di istruzioni (cioè programmi)
che possono essere direttamente eseguite da una macchina
Macchina fisica
È il processore, cioè l’esecutore dei programmi in linguaggio macchina
Macchina virtuale (per un dato linguaggio L)
È un programma (detto interprete) che svolge il ruolo di esecutore per
i programmi nel linguaggio L
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 33 / 71
I linguaggi ad alto livello
Linguaggi di programmazione
Insiemi di regole per costruire sequenze di istruzioni (cioè programmi)
che possono essere direttamente eseguite da una macchina
Macchina fisica
È il processore, cioè l’esecutore dei programmi in linguaggio macchina
Macchina virtuale (per un dato linguaggio L)
È un programma (detto interprete) che svolge il ruolo di esecutore per
i programmi nel linguaggio L
Linguaggi ad alto livello
Linguaggi le cui istruzioni sono eseguibili da una macchina virtuale in
grado di effettuare operazioni più complesse rispetto alle operazioni
elementari dei processori reali
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 33 / 71
Compilatori e interpreti
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 34 / 71
Compilatori e interpreti
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 34 / 71
Compilatori e interpreti
Nota
Un compilatore può anche tradurre un programma in un programma
equivalente in un linguaggio diverso dal linguaggio macchina
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 34 / 71
Interpreti
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 35 / 71
Interpreti
. LOAD R1 x
. LOAD R2 y
. DIV R1 R2
y <- x - (x/y)*y MUL R1 R2
. LOAD R2 x
. SUB R2 R1
. STO R2 y
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 35 / 71
Compilatori
Programma Pascal
Saluti.exe
program Saluti; 0110010...
_____________ ___________
_____ _____
________ ________
_______ _______
_________ _________
0110010...
Saluti
Macchina X
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 36 / 71
Portabilità del sorgente
Dipendente
Eseguibile Eseguibile Eseguibile dalla
piattaforma
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 37 / 71
Java Virtual Machine (JVM)
Interprete
Saluti.java
(java)
_____________
_____
________
Saluti
_______
_________
0110010...
Saluti.class
___________
_____
________
_______
Compilatore _________
(javac)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 38 / 71
Vantaggi: portabilità del bytecode
Programma Java
Indipendente
Compilatore
dalla
class Saluti{
piattaforma
...
}
bytecode
Dipendente
dalla
piattaforma
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 39 / 71
Vantaggi: leggerezza del bytecode
Saluti.java
_____________
_____ Interprete
________ (java)
_______
_________
0110010...
Compilatore
(javac)
Network
Saluti
Saluti.class
___________
_____
________
_______
_________
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 40 / 71
Strumenti per la stesura dei programmi
errori di
programma
compilazione
sorgente
compilatore
programma
oggetto
errori
del linker linker librerie
input
eseguibile
output
output ed modifiche
errori di
esecuzione
esecutore
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 41 / 71
Sommario: Computer, algoritmi e linguaggi
1 Computer, algoritmi e programmi
Computer, algoritmi e programmi
Evoluzione della programmazione
Finalità del corso
Rappresentazione dell’informazione
2 Dal linguaggio macchina ai linguaggi ad alto livello
La macchina di Von Neumann
Componenti principali di un computer
I linguaggi ad alto livello
Java Virtual Machine (JVM)
Strumenti per la stesura dei programmi
3 La programmazione strutturata
Le strutture di controllo fondamentali
Variabili e assegnamenti
4 Sintassi e semantica
Grammatiche
Lessico del linguaggio Java
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 42 / 71
Programmazione strutturata
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 43 / 71
Programmazione strutturata
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 43 / 71
Programmazione strutturata
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 43 / 71
Programmazione strutturata
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 43 / 71
Programmazione strutturata
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 44 / 71
Programmazione strutturata
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 44 / 71
Programmazione strutturata
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 44 / 71
Programmazione strutturata
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 44 / 71
Sequenza
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 45 / 71
Selezione
Sintassi
SE condizione
ALLORA
blocco1
ALTRIMENTI
blocco2
FINESE
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 46 / 71
Selezione
Sintassi
SE condizione
ALLORA
blocco1
ALTRIMENTI
blocco2
FINESE
Esecuzione
(1) Viene valutata condizione
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 46 / 71
Selezione
Sintassi
SE condizione
ALLORA
blocco1
ALTRIMENTI
blocco2
FINESE
Esecuzione
(1) Viene valutata condizione
se è vera vengono eseguite le istruzioni del blocco1
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 46 / 71
Selezione
Sintassi
SE condizione
ALLORA
blocco1
ALTRIMENTI
blocco2
FINESE
Esecuzione
(1) Viene valutata condizione
se è vera vengono eseguite le istruzioni del blocco1
se è falsa vengono eseguite quelle del blocco2
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 46 / 71
Selezione
Sintassi
SE condizione
ALLORA
blocco1
ALTRIMENTI
blocco2
FINESE
Esecuzione
(1) Viene valutata condizione
se è vera vengono eseguite le istruzioni del blocco1
se è falsa vengono eseguite quelle del blocco2
(2) L’esecuzione procede con l’istruzione che segue immediatamente la
fine del costrutto di selezione (FINESE)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 46 / 71
Selezione (senza ALTRIMENTI)
Sintassi
SE condizione
ALLORA
blocco1
FINESE
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 47 / 71
Selezione (senza ALTRIMENTI)
Sintassi
SE condizione
ALLORA
blocco1
FINESE
Esecuzione
Viene valutata condizione:
se è vera vengono eseguite le istruzioni del blocco1
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 47 / 71
Selezione (senza ALTRIMENTI)
Sintassi
SE condizione
ALLORA
blocco1
FINESE
Esecuzione
Viene valutata condizione:
se è vera vengono eseguite le istruzioni del blocco1
quindi l’esecuzione riprende dalla prima istruzione che segue
il costrutto di selezione
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 47 / 71
Selezione (senza ALTRIMENTI)
Sintassi
SE condizione
ALLORA
blocco1
FINESE
Esecuzione
Viene valutata condizione:
se è vera vengono eseguite le istruzioni del blocco1
quindi l’esecuzione riprende dalla prima istruzione che segue
il costrutto di selezione
se è falsa l’esecuzione prosegue direttamente dalla prima istruzione
che segue il costrutto di selezione
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 47 / 71
Esempio
Calcolo della divisione tra due numeri controllando che il divisore sia
diverso da zero:
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 48 / 71
Esempio
Calcolo della divisione tra due numeri controllando che il divisore sia
diverso da zero:
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 48 / 71
Esempio: calcolo delle radici di ax 2 + bx + c = 0
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 49 / 71
Iterazione (schema 1)
Sintassi
ESEGUI
blocco
QUANDO condizione
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 50 / 71
Iterazione (schema 1)
Sintassi
ESEGUI
blocco
QUANDO condizione
Esecuzione
(1) Viene eseguito blocco
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 50 / 71
Iterazione (schema 1)
Sintassi
ESEGUI
blocco
QUANDO condizione
Esecuzione
(1) Viene eseguito blocco
(2) Viene valutata condizione:
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 50 / 71
Iterazione (schema 1)
Sintassi
ESEGUI
blocco
QUANDO condizione
Esecuzione
(1) Viene eseguito blocco
(2) Viene valutata condizione:
se è vera si ritorna al punto (1)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 50 / 71
Iterazione (schema 1)
Sintassi
ESEGUI
blocco
QUANDO condizione
Esecuzione
(1) Viene eseguito blocco
(2) Viene valutata condizione:
se è vera si ritorna al punto (1)
se è falsa si prosegue con la prima istruzione scritta dopo il
costrutto iterativo
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 50 / 71
Iterazione (schema 1)
Sintassi
ESEGUI
blocco
QUANDO condizione
Esecuzione
(1) Viene eseguito blocco
(2) Viene valutata condizione:
se è vera si ritorna al punto (1)
se è falsa si prosegue con la prima istruzione scritta dopo il
costrutto iterativo
n(n+1)
Calcolo iterativo, senza utilizzare la formula di Gauss ( ni=1 i =
P
2 ).
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 51 / 71
Iterazione (schema 2)
Sintassi
QUANDO condizione ESEGUI
blocco
RIPETI
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 52 / 71
Iterazione (schema 2)
Sintassi
QUANDO condizione ESEGUI
blocco
RIPETI
Esecuzione
(1) Viene valutata la condizione:
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 52 / 71
Iterazione (schema 2)
Sintassi
QUANDO condizione ESEGUI
blocco
RIPETI
Esecuzione
(1) Viene valutata la condizione:
se è vera, viene eseguito blocco
quindi si torna al punto (1)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 52 / 71
Iterazione (schema 2)
Sintassi
QUANDO condizione ESEGUI
blocco
RIPETI
Esecuzione
(1) Viene valutata la condizione:
se è vera, viene eseguito blocco
quindi si torna al punto (1)
se è falsa, l’esecuzione riprende dalla prima l’istruzione che segue il
costrutto iterativo
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 52 / 71
Iterazione (schema 2)
Sintassi
QUANDO condizione ESEGUI
blocco
RIPETI
Esecuzione
(1) Viene valutata la condizione:
se è vera, viene eseguito blocco
quindi si torna al punto (1)
se è falsa, l’esecuzione riprende dalla prima l’istruzione che segue il
costrutto iterativo
SE condizione
ALLORA
ESEGUI
blocco
QUANDO condizione
FINESE
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 53 / 71
Variabili e assegnamenti
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 54 / 71
Variabili e assegnamenti
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 54 / 71
Variabili e assegnamenti
Esecuzione
(1) Viene calcolato il valore dell’espressione scritta a destra del simbolo ←
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 54 / 71
Variabili e assegnamenti
Esecuzione
(1) Viene calcolato il valore dell’espressione scritta a destra del simbolo ←
(2) Il risultato ottenuto è assegnato alla variabile (ovvero salvato nell’area
di memoria corrispondente) il cui nome è scritto a sinistra del simbolo
←, eliminando l’eventuale valore precedentemente contenuto.
Osservazione
Molti linguaggi, tra cui anche Java, utilizzano per l’assegnamento il
simbolo =, usato comunemente per indicare l’uguaglianza.
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 54 / 71
Esempio
x y z
3 5 2
x←y + z
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 55 / 71
Esempio
x y z
3 5 2
x←y + z
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 55 / 71
Esempio
x y z
3 5 2
x←y + z
x y z
7 5 2
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 55 / 71
Esempio
k←k + 1
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 56 / 71
Esempio
k←k + 1
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 56 / 71
Esempio
k←k + 1
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 56 / 71
Esempio
k←k + 1
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 56 / 71
Tipo
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 57 / 71
Tipo
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 57 / 71
Tipo
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 57 / 71
Astrazioni
Variabili
Il concetto di variabile è un’astrazione del concetto di locazione di
memoria
L’assegnamento di un valore a una variabile è un’astrazione
dell’istruzione STORE
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 58 / 71
Astrazioni
Variabili
Il concetto di variabile è un’astrazione del concetto di locazione di
memoria
L’assegnamento di un valore a una variabile è un’astrazione
dell’istruzione STORE
Tipi
Sebbene tutte le variabili siano rappresentate nella memoria come
sequenze di bit, tali sequenze possono essere interpretate
diversamente in base ai tipi
La nozione di tipo fornisce un’astrazione rispetto alla
rappresentazione effettiva dei dati
Il programmatore può utilizzare variabili di tipi differenti, senza
necessità di conoscerne l’effettiva rappresentazione
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 58 / 71
Dichiarazione delle variabili
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 59 / 71
Dichiarazione delle variabili
Vantaggi:
accresce la leggibilità dei programmi
diminuisce la possibilità di errori
facilita la realizzazione di compilatori efficienti
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 59 / 71
Esempio: calcolo delle radici di ax 2 + bx + c = 0
leggi a, b, c
D ← b2 - 4 * a * c
SE D < 0
ALLORA
scrivi “nessuna soluzione reale”
ALTRIMENTI
SE D == 0
ALLORA
x ← - b / (2 * a)
scrivi “Due soluzioni coincidenti: ”, x
ALTRIMENTI √
x1 ← (- b - √D) / (2 * a)
x2 ← (- b + D) / (2 * a)
scrivi “Due soluzioni: ”, x1, x2
FINESE
FINESE
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 60 / 71
Sommario: Computer, algoritmi e linguaggi
1 Computer, algoritmi e programmi
Computer, algoritmi e programmi
Evoluzione della programmazione
Finalità del corso
Rappresentazione dell’informazione
2 Dal linguaggio macchina ai linguaggi ad alto livello
La macchina di Von Neumann
Componenti principali di un computer
I linguaggi ad alto livello
Java Virtual Machine (JVM)
Strumenti per la stesura dei programmi
3 La programmazione strutturata
Le strutture di controllo fondamentali
Variabili e assegnamenti
4 Sintassi e semantica
Grammatiche
Lessico del linguaggio Java
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 61 / 71
Linguaggi di programmazione
Sintassi
Fornisce delle regole per la scrittura di programmi
Esistono vari formalismi per descrivere la sintassi di un linguaggio
(forme di Backus-Naur, carte sintattiche, . . . )
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 62 / 71
Linguaggi di programmazione
Sintassi
Fornisce delle regole per la scrittura di programmi
Esistono vari formalismi per descrivere la sintassi di un linguaggio
(forme di Backus-Naur, carte sintattiche, . . . )
Semantica
Determina il significato di un programma
Ovvero, le operazioni attuate dalla macchina che esegue il programma
(semantica operazionale)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 62 / 71
Linguaggi di programmazione
Sintassi
Fornisce delle regole per la scrittura di programmi
Esistono vari formalismi per descrivere la sintassi di un linguaggio
(forme di Backus-Naur, carte sintattiche, . . . )
Semantica
Determina il significato di un programma
Ovvero, le operazioni attuate dalla macchina che esegue il programma
(semantica operazionale)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 62 / 71
Linguaggi di programmazione
Sintassi
Fornisce delle regole per la scrittura di programmi
Esistono vari formalismi per descrivere la sintassi di un linguaggio
(forme di Backus-Naur, carte sintattiche, . . . )
Semantica
Determina il significato di un programma
Ovvero, le operazioni attuate dalla macchina che esegue il programma
(semantica operazionale)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 62 / 71
Programmi e algoritmi
PROGRAMMI
PROGRAMMI CORRETTI
PROGRAMMI TERMINANTI
ALGORITMI
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 63 / 71
Sintassi e semantica
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 64 / 71
Sintassi e semantica
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 64 / 71
Sintassi e semantica
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 64 / 71
Grammatica
G = (T , N, P, S)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 65 / 71
Grammatica
G = (T , N, P, S)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 65 / 71
Grammatica
G = (T , N, P, S)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 65 / 71
Grammatica
G = (T , N, P, S)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 65 / 71
Grammatica
G = (T , N, P, S)
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 65 / 71
Grammatica
G = (T , N, P, S)
Linguaggio generato da G
L’insieme di tutte le sequenze di simboli terminali ottenibili applicando le
regole di produzione dell’insieme P, a partire dal simbolo iniziale S.
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 65 / 71
Esempio
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 66 / 71
Esempio
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 66 / 71
Esempio
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 66 / 71
Esempio
(4) S = frase.
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 66 / 71
Esempio di produzione
frase
Q
Q
Q
Q
soggetto verbo complemento
Q
@
@ @ QQ
AA @
@ A @ Q
nome graffia articolo nome , complemento
articolo
@
@
@
lo mela lo gatto articolo nome
il cane
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 67 / 71
Linguaggio Java: il lessico
Alfabeto
L’alfabeto utilizzato per scrivere i programmi si chiama Unicode, ed è
un insieme di caratteri rappresentati su 16 bit.
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 68 / 71
Linguaggio Java: il lessico
Alfabeto
L’alfabeto utilizzato per scrivere i programmi si chiama Unicode, ed è
un insieme di caratteri rappresentati su 16 bit.
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 68 / 71
Linguaggio Java: il lessico
Alfabeto
L’alfabeto utilizzato per scrivere i programmi si chiama Unicode, ed è
un insieme di caratteri rappresentati su 16 bit.
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 68 / 71
Linguaggio Java: il lessico (2)
Identificatori
Sono nomi impiegati all’interno del programma per indicare variabili,
classi, riferimenti a oggetti, e cosı̀ via.
Un identificatore è costituito da una sequenza di lettere e cifre che
inizia con una lettera
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 69 / 71
Linguaggio Java: il lessico (2)
Identificatori
Sono nomi impiegati all’interno del programma per indicare variabili,
classi, riferimenti a oggetti, e cosı̀ via.
Un identificatore è costituito da una sequenza di lettere e cifre che
inizia con una lettera
Separatori
Sono caratteri che permettono di separare o raggruppare parti di
codice.
( ) { } [ ] ; , .
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 69 / 71
Linguaggio Java: il lessico (2)
Identificatori
Sono nomi impiegati all’interno del programma per indicare variabili,
classi, riferimenti a oggetti, e cosı̀ via.
Un identificatore è costituito da una sequenza di lettere e cifre che
inizia con una lettera
Separatori
Sono caratteri che permettono di separare o raggruppare parti di
codice.
( ) { } [ ] ; , .
Operatori
Sono simboli o sequenze di simboli che denotano alcune operazioni.
= > < ! ~ ? :
== <= >= != && || ++ --
+ - * / & | ^ % << >> >>>
+= -= *= /= &= |= ^= %= <<= >>= >>>=
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 69 / 71
Linguaggio Java: il lessico (3)
Letterali
Sequenze di caratteri utilizzate all’interno dei programmi per
rappresentare valori di tipi primitivi e stringhe.
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 70 / 71
Linguaggio Java: il lessico (3)
Letterali
Sequenze di caratteri utilizzate all’interno dei programmi per
rappresentare valori di tipi primitivi e stringhe.
Commenti
/*. . . */
il compilatore ignora tutto il testo compreso tra questi caratteri;
possono estendersi per più righe
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 70 / 71
Linguaggio Java: il lessico (3)
Letterali
Sequenze di caratteri utilizzate all’interno dei programmi per
rappresentare valori di tipi primitivi e stringhe.
Commenti
/*. . . */
il compilatore ignora tutto il testo compreso tra questi caratteri;
possono estendersi per più righe
/**. . . */
il compilatore ignora tutto il testo compreso tra questi caratteri;
possono estendersi per più righe. Sono chiamati commenti di
documentazione, vengono interpretati da javadoc
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 70 / 71
Linguaggio Java: il lessico (3)
Letterali
Sequenze di caratteri utilizzate all’interno dei programmi per
rappresentare valori di tipi primitivi e stringhe.
Commenti
/*. . . */
il compilatore ignora tutto il testo compreso tra questi caratteri;
possono estendersi per più righe
/**. . . */
il compilatore ignora tutto il testo compreso tra questi caratteri;
possono estendersi per più righe. Sono chiamati commenti di
documentazione, vengono interpretati da javadoc
commenti a fine riga
si aprono con la coppia di caratteri // e si chiudono alla fine della riga;
il compilatore ignora il testo che inizia dai caratteri // fino alla fine
della riga.
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 70 / 71
Il primo programma Java
// il metodo main
public static void main(String[] args) {
System.out.println("Ti auguro una buona giornata!");
}
}
Nota
In Java, ogni istruzione deve trovarsi all’interno di una classe
In ogni programma Java deve essere definito un metodo main (e non più
di uno) che indica alla JVM dove iniziare la computazione
BuonInizio.java
c 2005-2010 Pearson Education Italia Capitolo 1 - Computer, algoritmi e linguaggi 71 / 71