Διαφορά μεταξύ Debugger και Compiler

Anonim

Debugger vs Compiler

Γενικά, ο compiler είναι ένα πρόγραμμα υπολογιστή που διαβάζει ένα πρόγραμμα γραμμένο σε μία γλώσσα, που ονομάζεται γλώσσα πηγής και μεταφράζεται σε άλλη γλώσσα, η οποία ονομάζεται γλώσσα στόχου. Παραδοσιακά, η γλώσσα πηγής ήταν μια γλώσσα υψηλού επιπέδου όπως η C ++ και η γλώσσα-στόχος ήταν μια γλώσσα χαμηλού επιπέδου, όπως η γλώσσα συναρμολόγησης. Debugger είναι ένα πρόγραμμα υπολογιστή που χρησιμοποιείται για την εύρεση σφαλμάτων / σφαλμάτων σε άλλα προγράμματα. Το Debugger επιτρέπει σε έναν προγραμματιστή να σταματήσει την εκτέλεση ενός προγράμματος σε ένα σημείο και να εξετάσει τα χαρακτηριστικά όπως οι μεταβλητές τιμές σε εκείνο το σημείο.

Τι είναι ένα πρόγραμμα εντοπισμού σφαλμάτων;

Το Debugger είναι ένα πρόγραμμα υπολογιστή που χρησιμοποιείται για την εύρεση σφαλμάτων / σφαλμάτων σε άλλα προγράμματα. Το Debugger επιτρέπει την εκτέλεση ενός προγράμματος και την επιθεώρηση κάθε βήματος στην εκτέλεση του προγράμματος. Επιτρέπει επίσης τη διακοπή της εκτέλεσης του προγράμματος σε κάποιο σημείο και την αλλαγή ορισμένων μεταβλητών τιμών και στη συνέχιση της εκτέλεσης. Όλες αυτές οι δυνατότητες παρέχονται για να βοηθήσουν τον προγραμματιστή να βεβαιωθεί ότι το πρόγραμμά του συμπεριφέρεται σωστά και να βοηθήσει στην αναγνώριση των σφαλμάτων στον κώδικα. Τα περισσότερα από τα προγράμματα εντοπισμού σφαλμάτων παρέχουν τη δυνατότητα εκτέλεσης ενός προγράμματος βήμα προς βήμα (επίσης αποκαλούμενου "single stepping"), πατώντας για να εξετάσετε την τρέχουσα κατάσταση του προγράμματος παρέχοντας ένα σημείο διακοπής και παρακολουθώντας μεταβλητές τιμές. Ορισμένοι προχωρημένοι προγραμματιστές σφαλμάτων επιτρέπουν στον προγραμματιστή να παραλείπει μια τοποθεσία που προκαλεί συντριβή ή ένα λογικό σφάλμα στον κώδικα και συνεχίζει την εκτέλεση από διαφορετική θέση. Μερικά από τα δημοφιλή προγράμματα εντοπισμού σφαλμάτων είναι ο GNU Debugger (GDB), ο Microsoft Visual Studio Debugger κ.λπ.

Τι είναι ένας μεταγλωττιστής;

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

Ποια είναι η διαφορά μεταξύ του Debugger και του Compiler;

Το Debugger είναι ένα πρόγραμμα υπολογιστή που χρησιμοποιείται για την εύρεση σφαλμάτων / σφαλμάτων σε άλλα προγράμματα, ενώ ο compiler είναι ένα πρόγραμμα υπολογιστή που διαβάζει ένα πρόγραμμα γραμμένο σε μία γλώσσα και μεταφράζει το σε άλλη γλώσσα.Οι μεταγλωττιστές έχουν επίσης τη δυνατότητα ανίχνευσης σφαλμάτων σύνταξης και άλλων σφαλμάτων χρόνου σύνταξης, αλλά οι εντοπιστές σφαλμάτων παρέχουν περισσότερες δυνατότητες (όπως η παρακολούθηση της μνήμης) για την ανίχνευση σφαλμάτων στα προγράμματα. Αυτά τα δύο είναι δύο διαφορετικά προγράμματα, αλλά τις περισσότερες φορές, ένα πρόγραμμα εντοπισμού σφαλμάτων και ένας μεταγλωττιστής ενσωματώνονται σε ένα ενιαίο πακέτο.