Προγραμματισμός

Γνώση Υπολογιστών >> Προγραμματισμός >  >> Γλώσσες Προγραμματισμού Υπολογιστών

Τι είναι ο μεταφραστής στον υπολογισμό;

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

* Compiler: Ένας μεταγλωττιστής μεταφράζει ολόκληρο τον πηγαίο κώδικα σε κώδικα μηχανής (ή μια ενδιάμεση αναπαράσταση όπως το BYTECODE) * Πριν εκτελεστεί το πρόγραμμα. Ο κώδικας μηχανής που προκύπτει μπορεί στη συνέχεια να εκτελεστεί απευθείας από τον επεξεργαστή του υπολογιστή. Οι μεταγλωττιστές συνήθως παράγουν βελτιστοποιημένο κώδικα για καλύτερη απόδοση, αλλά η ίδια η διαδικασία συλλογής μπορεί να πάρει χρόνο. Παραδείγματα περιλαμβάνουν το GCC (συλλογή μεταγλωττιστή GNU) και το clang.

* Διερμηνέας: Ένας διερμηνέας μεταφράζει και εκτελεί τη γραμμή πηγαίου κώδικα ανά γραμμή, χωρίς να δημιουργεί ένα ανεξάρτητο εκτελέσιμο αρχείο. Αυτό επιτρέπει ταχύτερη ανατροφοδότηση κατά τη διάρκεια της ανάπτυξης, διότι τα σφάλματα εντοπίζονται μόλις συναντηθούν. Ωστόσο, ο ερμηνευμένος κώδικας γενικά λειτουργεί πιο αργά από τον κώδικα που έχει καταρτιστεί. Παραδείγματα περιλαμβάνουν τους διερμηνέα της Python και τους κινητήρες JavaScript σε προγράμματα περιήγησης ιστού.

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

* transpiler (ή μεταγλωττιστής πηγής προς πηγή): Ένας μεταφορέας μεταφράζει τον πηγαίο κώδικα από μία γλώσσα προγραμματισμού υψηλού επιπέδου σε μια άλλη γλώσσα προγραμματισμού υψηλού επιπέδου. Δεν δημιουργεί απευθείας κώδικα μηχανής. Αυτό είναι χρήσιμο για τη μεταφορά κώδικα μεταξύ διαφορετικών γλωσσών ή για τον εκσυγχρονισμό του κώδικα κληρονομιάς. Παραδείγματα περιλαμβάνουν Babel (μεταφορά JavaScript ES6+ σε ES5) και TypleScript Compilers (Transpiling TypeScript στο JavaScript).

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

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα