Nella pratica della programmazione possono comparire errori lessicali, sintattici e logici.
Il compilatore interrompe la traduzione del codice sorgente quando riconosce un errore lessicale o sintattico e lo segnala al programmatore in modo più o meno corretto…
Errori lessicali
La parola non appartiene al linguaggio
- Than, invece di Then
- TextWidow, invece di TextWindow
- …
Errori sintattici
La struttura della frase è sbagliata
-
manca Then
If x = 0 Istruzione EndIf
-
EndIf è nel posto sbagliato
If x = 0 Then Istruzione EndIf
Se tenti di eseguire il programma e sono presenti degli errori allora apparirà la finestra in basso Sono stati rilevati errori… con un elenco di messaggi.
Ogni messaggio specifica la riga, la colonna e la probabile causa dell’errore.
Fai doppio clic sulla prima segnalazione, l’IDE posizionerà il cursore alla posizione specificata, correggi l’istruzione sbagliata e riprova a eseguire il programma.
Errori logici
Il programma in esecuzione si comporta in modo strano
- si blocca e non produce i risultati
- genera un errore critico
- produce risultati sbagliati.
Testing
Per individuare eventuali errori logici si passa alla fase di testing.
Si mette alla prova il programma oggetto su diverse istanze del problema.
Un’istanza di un problema è un caso particolare del problema stesso, cioè il problema con i dati in input specificati.
Utilizzando dati significativi per i quali si conosce la risposta corrispondente si può raggiungere la ragionevole certezza che il software non contenga errori logici e concludere la fase di testing.
Debugging
Quando la risposta ottenuta non è quella attesa si passa alla fase di debugging per individuare gli errori commessi nella stesura del
- sorgente
- programma
- algoritmo
- e se fosse sbagliato il problema?
Errori comuni
Con la pratica si riconosceranno alcuni errori molto frequenti
- righe di codice dimenticate o nella posizione sbagliata
- confusione tra i nomi di variabili
- uso di variabili non inizializzate
- caso particolare del problema non previsto
- divisione per zero
- argomento illegale di una funzione (radice quadrata, resto, logaritmo, …)
- loop infinito, un ciclo While che non termina mai
- …
Attenzione…
- Alcuni errori logici possono essere frequenti con un linguaggio di programmazione e
- impossibili con un altro….