Τι είναι ο μεταγλωττιστής ή Πώς να κάνετε έναν υπολογιστή να καταλάβει τι θέλετε από αυτόν;

Πίνακας περιεχομένων:

Τι είναι ο μεταγλωττιστής ή Πώς να κάνετε έναν υπολογιστή να καταλάβει τι θέλετε από αυτόν;
Τι είναι ο μεταγλωττιστής ή Πώς να κάνετε έναν υπολογιστή να καταλάβει τι θέλετε από αυτόν;

Βίντεο: Τι είναι ο μεταγλωττιστής ή Πώς να κάνετε έναν υπολογιστή να καταλάβει τι θέλετε από αυτόν;

Βίντεο: Τι είναι ο μεταγλωττιστής ή Πώς να κάνετε έναν υπολογιστή να καταλάβει τι θέλετε από αυτόν;
Βίντεο: Δήμητρας C++ Programming-1.Εγκατάσταση Codeblocks 2024, Δεκέμβριος
Anonim

Το τελικό στάδιο της δημιουργίας ενός προγράμματος είναι η μετάφραση ενός αλγόριθμου γραμμένου σε μία από τις γλώσσες προγραμματισμού (C/C++, Pascal, κ.λπ.) σε γλώσσα μηχανής χαμηλού επιπέδου. Αυτό οφείλεται στο γεγονός ότι για να εκτελέσουν οποιαδήποτε εργασία, οι υπολογιστές πρέπει να λάβουν εντολές σε γλώσσα που κατανοούν, κοντά στη δυαδική και να λειτουργούν με πρωτόγονες δομές δεδομένων (bit, byte ή λέξη). Η διαδικασία μετάφρασης δηλώσεων γλωσσών υψηλού επιπέδου για συγκεκριμένο τομέα σε δυαδικό κώδικα ονομάζεται μετάφραση. Υπάρχουν δύο μέθοδοι μετάφρασης - συλλογή και ερμηνεία.

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

Μεταγλωττιστής - τι είναι;

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

Μεταγλωττιστής και διερμηνέας - ομοιότητες και διαφορές

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

Μπορείτε να πείτε ότι ο μεταγλωττιστής και ο διερμηνέας είναι επεξεργαστές γλώσσας που επιτρέπουν στον υπολογιστή να αναγνωρίζει και να εκτελεί εντολές που δίνονται από τον προγραμματιστή.

Ταξινόμηση μεταγλωττιστή

ο μεταγλωττιστής είναι ένα πρόγραμμα
ο μεταγλωττιστής είναι ένα πρόγραμμα

Οι μεταγλωττιστές ταξινομούνται κυρίως βάσει χαρακτηριστικών που σχετίζονται με τους τομείς πρακτικής εφαρμογής τους.

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

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

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

Ένας ερμηνευτικός (βηματικός) μεταγλωττιστής είναι ένα βοηθητικό πρόγραμμα που εκτελεί διαδοχικά ανεξάρτητη μεταγλώττιση κάθε δήλωσης ή εντολής ενός πηγαίου κώδικα υψηλού επιπέδου.

Ένας μεταγλωττιστής μεταγλωττιστών είναι ένας μεταφραστής ικανός να αποδεχτεί μια επίσημη περιγραφή για μια γλώσσα προγραμματισμού και να δημιουργήσει ανεξάρτητα έναν μεταγλωττιστή για οποιαδήποτε γλώσσα.

μεταγλωττιστής και διερμηνέας
μεταγλωττιστής και διερμηνέας

Ο μεταγλωττιστής εντοπισμού σφαλμάτων σάς επιτρέπει να βρείτε και να διορθώσετε ορισμένα είδη συντακτικών σφαλμάτων που έγιναν κατά τη σύνταξη του πηγαίου κώδικα

Ένας μόνιμος μεταγλωττιστής καταλαμβάνει μόνιμη θέση στη μνήμη RAM και επομένως μπορεί να επαναχρησιμοποιηθεί από ένα ευρύ φάσμα εργασιών.

Ο μεταγλωττιστής που έχει μεταγλωττιστεί μόνος του είναι γραμμένος στην ίδια γλώσσα με τη μετάφραση.

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

Συσκευή μεταγλωττιστή

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

Γλώσσες προγραμματισμού και μέθοδοι μετάφρασης

μεταγλωττιστής γλώσσας
μεταγλωττιστής γλώσσας

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

Πλεονεκτήματα και μειονεκτήματα των μεταγλωττιστών και των διερμηνέων. Εφαρμογές

Λάβετε υπόψη ότι οι μεταγλωττισμένες εφαρμογές είναι πιο γρήγορες από αυτές που ερμηνεύονται, αλλά ταυτόχρονα, ο κώδικας μηχανής που λαμβάνεται ως αποτέλεσμα της μεταγλώττισης εξαρτάται από την πλατφόρμα υλικού. Έτσι, ένα πρόγραμμα γραμμένο και μεταγλωττισμένο για Windows δεν θα λειτουργήσει, για παράδειγμα, στο Linux. Επομένως, στην περίπτωση των εφαρμογών Διαδικτύου, όταν είναι αδύνατο να πούμε εκ των προτέρων σε ποιο περιβάλλον θα λειτουργήσουν, χρησιμοποιούν ερμηνεία ή bytecode (στην περίπτωση αυτή, το πρόγραμμα πηγής μετατρέπεται σε μια ενδιάμεση μορφή που μπορεί να εκτελεστεί σε διάφορα υλικά πλατφόρμες).

Συνιστάται: