Page 26 - 120900035800_gallo_cloud_sia

Basic HTML Version

98
BLoCCo teMatICo a
le basi della programmazione
errorI neLLa PrograMMazIone
ANTIVIRUS
Ricerca vulnerabilità
1
Complessità di gestione di un codice non
strutturato.
2
Tenere traccia di tutti i salti presenti nel codice.
tIPo dI errore
eseMPIo
doVe
IMPatto
Ciò che è assolutamente
“proibito’” dalle regole della
programmazione strutturata
è l’inserimento di salti (“go
to’”) al di fuori delle strutture
iterativa e condizionale;
questi salti renderebbero
illeggibile e poco ordinata
la struttura del programma,
con pesanti conseguenze
sulla sua efficienza e sulla
possibilità di apportarvi
correzioni. Per i programmi
scritti con uno stile
particolarmente disordinato
si parla di
spaghetti
programming
.
Questo esempio riporta una struttura
errata
1. INIZIO
2. i
0
3. Se i è diverso da 10 allora vai al punto 7
4. Se i = 10 vai al punto 5
5. stampa “Programma terminato.”
6. Esci dal programma
7. incrementa i di uno
8. stampa i * i
9. Vai al punto 3
Nei primi linguaggi
di programmazione,
Basic ad esempio,
vista la scarsa
dotazione di
costrutti dedicati alla
programmazione
strutturata si
concepiva un
programma come
un unico blocco di
codice, detto “main”,
dove era possibile
saltare da un punto
a un altro tramite
la famosissima
istruzione “GOTO”.
Non esistevano
porzioni di codice
riutilizzabili, e
quell’unico blocco
di codice doveva
essere completo di
tutto.
La presenza di
salti crea flussi
di controllo non
predicibili e
dipendenti dai
numeri attribuiti
ai passi del
programma. La
programmazione
non strutturata
portava alla
creazione di
codice spesso
troppo lungo,
incomprensibile
e di complessa
manutenzione.
Un altro aspetto
negativo è che
questo tipo di
tecnica portava
spesso a uno spreco
di risorse hardware e
conseguentemente
di denaro.
3
Ridondanza di porzioni di codice,
impossibilità di riutilizzo.
inizio
fine
o
i
0
i
10
“programma
terminato”
i
i+1
o
i*i