Κάθε πρόγραμμα έχει λάθη. Το κεφάλαιο χωρίζει τα λάθη σε τρεις κατηγορίες (υλοποίησης, εκτέλεσης, λογικά), εξηγεί τι είναι η εκσφαλμάτωση, τα εργαλεία της και πώς ένα πρόγραμμα χειρίζεται λάθη κατά την εκτέλεση.
Γ΄ Λυκείου · Πληροφορική · 15 λεπτά
Το μάθημα είναι στο σχολικό βιβλίο. Δεν το αντιγράφουμε εδώ. Άνοιξε το επίσημο
κεφάλαιο και γύρνα για την εξάσκηση.
Η σύνοψη, οι όροι και οι ασκήσεις γράφτηκαν με τη βοήθεια τεχνητής νοημοσύνης από το
σχολικό βιβλίο και μπορεί να έχουν λάθη. Πηγή είναι πάντα το βιβλίο: ό,τι σου φαίνεται περίεργο,
έλεγξέ το εκεί. Βρήκες λάθος; Γράψε μας στο aporia@signmak.com.
Σχεδιάγραμμα
Δική μας σύνοψη της ενότητας, για επανάληψη. Πηγή είναι πάντα το βιβλίο.
Τι έγινε
Τα λάθη υλοποίησης προέρχονται από λανθασμένη σύνταξη· ο μεταγλωττιστής τα εντοπίζει και τα σύγχρονα περιβάλλοντα ελέγχουν τη σύνταξη την ώρα που γράφουμε.
Τα λάθη εκτέλεσης εμφανίζονται στο πραγματικό περιβάλλον, π.χ. διαίρεση με το μηδέν, υπερχείλιση μεταβλητής ή βλάβη υλικού, και αντιμετωπίζονται μόνο με εντολές που τα παγιδεύουν.
Τα λογικά λάθη είναι λάθη σχεδιασμού: το πρόγραμμα τρέχει αλλά δεν δίνει τα σωστά αποτελέσματα.
Η σελίδα αναφέρει γνωστά λάθη λογισμικού: Mariner 1 (1962), δίκτυο AT&T (1990), επεξεργαστής Pentium (1994), αεροδρόμιο του Denver (1995) και το πρόβλημα του έτους 2000.
Εκσφαλμάτωση (debugging) είναι ο έλεγχος, ο εντοπισμός και η διόρθωση των σφαλμάτων· τη βοηθούν τα σχόλια και τα ονόματα μεταβλητών που δείχνουν το περιεχόμενό τους.
Εργαλεία εκσφαλμάτωσης: εκφράσεις ελέγχου, σημεία διακοπής, βήμα προς βήμα εκτέλεση, ιστορικό, ιχνηλάτηση και άμεση εκτέλεση· χωρίς αυτά βοηθούν εντολές εμφάνισης τιμών.
Στον χειρισμό λαθών εκτέλεσης κάθε λάθος δίνει έναν κωδικό και η ροή περνά σε τμήμα χειρισμού (exception ή error handler)· Java, ADA και C++ χρησιμοποιούν εξαιρέσεις.
Τρεις: λάθη υλοποίησης (συντακτικά, τα πιάνει ο μεταγλωττιστής και το πρόγραμμα δεν εκτελείται), λάθη εκτέλεσης (π.χ. διαίρεση με το μηδέν, αποσύνδεση εκτυπωτή, που συχνά τερματίζουν αντικανονικά την εφαρμογή) και λογικά λάθη (το πρόγραμμα τρέχει αλλά δίνει λάθος αποτελέσματα).
Πώς βρίσκονται τα λογικά λάθη;
Κανένα εργαλείο δεν τα εντοπίζει αυτόματα, γιατί ούτε ο μεταγλωττιστής βρίσκει συντακτικό λάθος ούτε η εκτέλεση σταματά. Φαίνονται μόνο με τον έλεγχο (testing) και την ανάλυση των αποτελεσμάτων.
Τι μπορεί να κάνει ένα πρόγραμμα όταν παρουσιαστεί λάθος στην εκτέλεση;
Ο μηχανισμός ανίχνευσης στέλνει τη ροή σε τμήμα χειρισμού λάθους. Εκεί το πρόγραμμα μπορεί να διορθώσει την αιτία (ή να ζητήσει από τον χρήστη) και να ξαναδοκιμάσει την εντολή, να προχωρήσει στην επόμενη αν η εντολή δεν είναι κρίσιμη, ή, ως έσχατη λύση, να ενημερώσει και να τερματίσει.
Ανοίγει το μενού κοινοποίησης του κινητού σου. Αν δεν υπάρχει, αντιγράφεται ο σύνδεσμος.
Νέα από το aporia.gr Νέες ενότητες και ό,τι βρίσκουμε στα θέματα των Πανελληνίων, στη σελίδα μας στο Facebook.