Διόρθωση και δοκιμή
Λάθη σύνταξης
Η σύνταξη αναφέρεται στη γραμματική, τη δομή και τη διαταγή των στοιχείων σε μια δήλωση. Ένα λάθος σύνταξης εμφανίζεται όταν παραβαίνουμε τους κανόνες, όπως να ξεχάσουμε να τελειώσει μια δήλωση με μια άνω τελεία. Όταν συντάσσετε το πρόγραμμα, ο μεταγλωττιστής θα παραγάγει έναν κατάλογο οποιωνδήποτε λαθών σύνταξης που μπορεί να αντιμετωπίσει.
Ένας καλός μεταγλωττιστής παραγωγή ο κατάλογος με μια περιγραφή του λάθους, και μπορεί να παρέχει μια πιθανή λύση. Ο καθορισμός των λαθών μπορεί να οδηγήσει στα περαιτέρω λάθη που επιδεικνύονται όταν. Ο λόγος για αυτό είναι ότι τα προηγούμενα λάθη άλλαξαν τη δομή του προγράμματος που σημαίνει ότι τα περαιτέρω λάθη καταστάλθηκαν κατά τη διάρκεια της αρχικής σύνταξης.
Ομοίως, ένα ενιαίο λάθος μπορεί να οδηγήσει σε διάφορα λάθη. Προσπαθήστε μια άνω τελεία στο τέλος της κύριας λειτουργίας ενός προγράμματος που συντάσσει και τρέχει σωστά. Όταν recompile αυτό, εσείς θα πάρετε έναν τεράστιο κατάλογο λαθών, και όμως είναι μόνο μια τοποθετημένη σε λάθος μέρος άνω τελεία.
Όπως και τα λάθη σύνταξης, οι μεταγλωττιστές μπορούν επίσης να εκδώσουν τις προειδοποιήσεις. Μια προειδοποίηση δεν είναι ένα λάθος, αλλά μπορεί να προκαλέσει τα προβλήματα κατά τη διάρκεια της εκτέλεσης του προγράμματός σας. Παραδείγματος χάριν η ανάθεση ενός αριθμού κινητής υποδιαστολής διπλός-ακρίβειας σε έναν αριθμό κινητής υποδιαστολής ενιαίος-ακρίβειας μπορεί να οδηγήσει σε μια απώλεια ακρίβειας. Δεν είναι ένα λάθος σύνταξης, αλλά θα μπορούσε να οδηγήσει στα προβλήματα. Σε αυτό το ιδιαίτερο παράδειγμα, θα μπορούσατε να παρουσιάσετε πρόθεση με τη ρίψη της μεταβλητής στον κατάλληλο τύπο στοιχείων.
Εξετάστε ότι το ακόλουθο παράδειγμα όπου το Χ είναι ένας αριθμός κινητής υποδιαστολής ενιαίος-ακρίβειας, και το Υ είναι ένας αριθμός κινητής υποδιαστολής διπλός-ακρίβειας. το Υ πετιέται ρητά σε ένα επιπλέον σώμα κατά τη διάρκεια της ανάθεσης, η οποία θα απέβαλλε οποιεσδήποτε προειδοποιήσεις μεταγλωττιστών.
x = (float)y;
Λάθη λογικής
Τα λάθη λογικής εμφανίζονται όταν υπάρχει ένα λάθος στη λογική. Παραδείγματος χάριν, θα μπορούσατε να εξετάσετε ότι ένας αριθμός είναι λιγότερο από 4 και μεγαλύτερος από 8. Αυτός θα μπορούσε αδύνατο πάντα να ισχύει, αλλά εάν είναι συντακτικά σωστό το πρόγραμμα θα συντάξει επιτυχώς. Εξετάστε το ακόλουθο παράδειγμα:
if (x < 4 && x > 8)
puts("Will never happen!");
Η σύνταξη είναι σωστή, έτσι το πρόγραμμα θα συντάξει, αλλά βάζει τη δήλωση δεν θα τυπωθεί ποτέ όπως η αξία του Χ μπόρεσε αδύνατο να είναι λιγότερο από τέσσερα και μεγαλύτερα από οκτώ συγχρόνως.
Τα περισσότερα λάθη λογικής ανακαλύπτονται μέσω της αρχικής δοκιμής του προγράμματος. Όταν δεν συμπεριφέρεται όπως αναμείνατε, επιθεωρείτε τις λογικές δηλώσεις περισσότερο και τις διορθώνετε. Αυτό ισχύει μόνο για τα προφανή λογικά λάθη. Όσο μεγαλύτερο το πρόγραμμα, οι περισσότερες πορείες εκεί θα είναι μέσω του, τόσο δυσκολότερος αυτό γίνεται για να ελέγξει ότι το πρόγραμμα συμπεριφέρεται όπως αναμένεται.
|