Skip to main content

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

Ένας μεταγλωττιστής είναι ένας ειδικός τύπος προγράμματος υπολογιστή που μεταφράζει ένα αρχείο κειμένου που μπορεί να αναγνωρίσει από τον άνθρωπο σε μια φόρμα που ο υπολογιστής μπορεί να κατανοήσει ευκολότερα.Στο πιο βασικό επίπεδο του, ένας υπολογιστής μπορεί να καταλάβει μόνο δύο πράγματα, ένα 1 και ένα 0. Σε αυτό το επίπεδο, ένας άνθρωπος θα λειτουργήσει πολύ αργά και θα βρει τις πληροφορίες που περιέχονται στη μακρά σειρά των 1s και 0s ακατανόητων.Ένας μεταγλωττιστής είναι ένα πρόγραμμα υπολογιστή που γεφυρώνει αυτό το χάσμα

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

multistage

ή

multiple pass

.Ένα πρώτο πέρασμα θα μπορούσε να πάρει μια πολύ φυσική γλώσσα και να το κάνει πιο κοντά σε μια κατανοητή γλώσσα.Ένα δεύτερο ή ακόμα και ένα τρίτο πέρασμα θα μπορούσε να το πάρει στο τελικό στάδιο, το εκτελέσιμο αρχείο. Η ενδιάμεση έξοδος σε έναν μεταγλωττιστή πολλαπλών σταδίων ονομάζεται συνήθως ψευδο-κωδικός , αφού δεν μπορεί να χρησιμοποιηθεί από τον υπολογιστή.Ο ψευδο-κώδικας είναι πολύ δομημένος, όπως ένα πρόγραμμα υπολογιστή, όχι ελεύθερη ροή και verbose σαν μια πιο φυσική γλώσσα.Η τελική έξοδος ονομάζεται εκτελέσιμο αρχείο

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

Σφάλματα που περιορίζουν τον μεταγλωττιστή στην κατανόηση ενός προγράμματος ονομάζονται σφάλματα σύνταξης .Σφάλματα στον τρόπο με τον οποίο οι λειτουργίες του προγράμματος ονομάζονται Λογικά σφάλματα

.Τα λογικά σφάλματα είναι πολύ πιο δύσκολο να εντοπιστούν και να διορθωθούν.Τα σφάλματα σύνταξης είναι σαν λάθη ορθογραφίας, ενώ τα λογικά σφάλματα είναι λίγο περισσότερο σαν γραμματικά σφάλματα.Ένας cross compiler επιτρέπει ένα σύνολο αρχείων κειμένου των οδηγιών που είναι γραμμένο για έναν υπολογιστή σχεδιασμένο από έναν συγκεκριμένο κατασκευαστή να καταρτιστεί και να εκτελεστεί για έναν διαφορετικό υπολογιστή από έναν διαφορετικό κατασκευαστή.Για παράδειγμα, ένα πρόγραμμα που γράφτηκε για να τρέξει σε έναν υπολογιστή Intel μπορεί μερικές φορές να συσταθεί για να εκτελέσει έναν υπολογιστή που αναπτύχθηκε από την Motorola.Αυτό συχνά δεν λειτουργεί πολύ καλά.Στο επίπεδο στο οποίο λειτουργούν τα προγράμματα ηλεκτρονικών υπολογιστών, το υλικό του υπολογιστή μπορεί να φαίνεται πολύ διαφορετικό, ακόμη και αν μπορεί να μοιάζουν με εσάς.

Η Cross Compilation διαφέρει από το να μιμείται ένας υπολογιστής άλλος υπολογιστής.Εάν ένας υπολογιστής εξομοιώνει έναν διαφορετικό υπολογιστή, προσποιείται ότι είναι αυτός ο άλλος υπολογιστής.Η εξομοίωση είναι συχνά πιο αργή από τη διασταυρούμενη συλλογή, καθώς δύο προγράμματα εκτελούνται ταυτόχρονα, το πρόγραμμα που προσποιείται ότι είναι ο άλλος υπολογιστής και το πρόγραμμα που εκτελείται.Ωστόσο, για να συνεργαστεί με τη διασταυρούμενη συλλογή, χρειάζεστε και τα δύο πρωτότυπαΚείμενο φυσικής γλώσσας που περιγράφει το πρόγραμμα και έναν υπολογιστή που είναι επαρκώς παρόμοιος με τον αρχικό υπολογιστή που το πρόγραμμα μπορεί να λειτουργήσει για να τρέξει σε διαφορετικό υπολογιστή.Αυτό δεν είναι πάντα δυνατό, οπότε και οι δύο τεχνικές χρησιμοποιούνται.