Skip to main content

Τι είναι ένα σφάλμα συλλογής;

Ένα σφάλμα συλλογής είναι ένα σφάλμα στην κατασκευή ενός αρχείου κώδικα μηχανής για μια γλώσσα υπολογιστή.Πολλές γλώσσες υπολογιστών καταρτίζουν τον πηγαίο κώδικα τους σε αρχεία κώδικα μηχανής πριν από την κατασκευή ή την εκτέλεση προγραμμάτων.Ο πιο συνηθισμένος τύπος σφάλματος συλλογής είναι ένα βασικό σφάλμα σύνταξης.Ένα μικρό λάθος μπορεί να προκαλέσει πολλά προβλήματα με τον κώδικα.Αυτό είναι σημαντικά διαφορετικό από τις ερμηνευμένες γλώσσες, που χρησιμοποιούν τον ακατέργαστο πηγαίο κώδικα κατά το χρόνο εκτέλεσης για να εκτελέσουν ένα πρόγραμμα.Μια γλώσσα δεν χρειάζεται να είναι εγγενώς αντικειμενική προσανατολισμένη για να είναι ανάλογη.Το C ++, για παράδειγμα, μπορεί να δομηθεί χρησιμοποιώντας αντικειμενοστραφή ή διαδικαστικό προγραμματισμό.

Η πιο συνηθισμένη αιτία των σφαλμάτων συλλογής είναι ένα σφάλμα σύνταξης.Τα σφάλματα σύνταξης είναι σφάλματα με τη μορφή του πρώτου πηγαίου κώδικα, που συνήθως προκαλούνται από κάποια παραβίαση των αρχών των γλωσσών των υπολογιστών.Αυτά τα σφάλματα μπορεί να είναι τόσο απλά όσο να ξεχνάμε ένα ημικόλον στο τέλος μιας γραμμής κώδικα ή τόσο πολύπλοκη όσο η αρχικοποίηση μιας συστοιχίας λανθασμένα.Συνήθως, δεν είναι εξαιρετικά δύσκολο να βρεθεί και να διαγνωστεί αυτά τα σφάλματα.Οι περισσότεροι μεταγλωττιστές δείχνουν τα σφάλματα όταν συναντώνται και δεν επιτρέπουν τον σχηματισμό κώδικα μηχανής μέχρι να σταθεροποιηθούν τα σφάλματα.Οι διαφορετικές γλώσσες χρησιμοποιούν διαφορετικούς μεταγλωττιστές, ωστόσο, είναι πιθανό να υπάρχει ένας συγκεκριμένος τύπος σφάλματος συλλογής σε μία γλώσσα, αλλά όχι σε άλλη..Για παράδειγμα, ξεχνώντας ένα ημικόλογο στο τέλος μιας γραμμής, όταν μια γλώσσα το απαιτεί, μπορεί να προκαλέσει λάθη ανάλυσης επειδή ο μεταγλωττιστής δεν γνωρίζει πότε μια συγκεκριμένη γραμμή υποτίθεται ότι θα τελειώσει.Αυτό το σφάλμα ανάλυσης μπορεί να εκδηλωθεί όπως πολλά σφάλματα συλλογής, καθιστώντας το σαν να υπάρχουν ξαφνικά τρομακτικά προβλήματα με τον κώδικα αντί για ένα μικρό τυπογραφικό λάθος.Γενικά, η προσεκτική προσοχή στην υπακοή στους κανόνες μιας γλώσσας του υπολογιστή μπορεί να αποτρέψει αυτούς τους τύπους σφαλμάτων.Με τον ίδιο τρόπο, αν εμφανιστεί μια ξαφνική επίθεση σφάλματος σύνταξης, ο έμπειρος προγραμματιστής μπορεί συνήθως να συμπεράνει ότι ένα μόνο μικρό λάθος προκάλεσε τα περισσότερα από αυτά.

Μια κοινή εσφαλμένη αντίληψη των αρχάριων προγραμματιστών είναι ότι ένα σφάλμα συλλογής θα συντρίψει έναν υπολογιστή και αυτόδεν συμβαίνει ποτέ.Τα σφάλματα σύνταξης περιορίζονται σε μεταγλωττιστές και η δημιουργία κώδικα μηχανής σπάνια προκαλεί προβλήματα για ένα ολόκληρο σύστημα υπολογιστή.Κανένα πρόγραμμα δεν είναι ανόητο, συμπεριλαμβανομένου ενός μεταγλωττιστή, αλλά οι πιθανότητες να προκαλέσουν προβλήματα με έναν ολόκληρο υπολογιστή μόνο με την κατάρτιση κώδικα ή την αντιμετώπιση ενός σφάλματος συλλογής είναι εξαιρετικά μικρό.Μόλις σταθεροποιηθούν όλα τα σφάλματα συλλογής, οι πιθανότητες είναι καλές ώστε ένα πρόγραμμα να λειτουργεί ομαλά, όπως προοριζόταν.