Αρχική » Υπολογιστές » Προγραμματισμός

Αρχείο κατηγορίας Προγραμματισμός

Κατηγορίες

Ρολόι

Σκακιστική άσκηση

Διερμηνευτής

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

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

Η Perl, η Python, η MATLAB, και η Ruby είναι παραδείγματα γλωσσών που μεταφράζουν τον κώδικα σε αποδοτική μορφή, στο νούμερο 2 παραπάνω, ενώ η UCSD Pascal και η εικονική μηχανή της Java ανήκουν στο νούμερο 3 παραπάνω: τα προγράμματα Java μεταγλωττίζονται και αποθηκεύονται ως κώδικας bytecode, που στη συνέχεια συνδέεται κατά την ώρα της εκτέλεσης και εκτελείται από ένα διερμηνέα (εικονική μηχανή). Μερικά συστήματα όπως η Smalltalk συνδυάζουν τη δεύτερη και τρίτη κατηγορία.

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

Μεταγλωττιστής

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

Ο όρος «μεταγλωττιστής» χρησιμοποιείται κυρίως για προγράμματα που μεταφράζουν μια γλώσσα προγραμματισμού υψηλού επιπέδου σε μια γλώσσα χαμηλότερου επιπέδου (όπως η συμβολική γλώσσα ή η γλώσσα μηχανής). Αν το μεταγλωττισμένο πρόγραμμα πρόκειται να εκτελεστεί σε έναν υπολογιστή που έχει διαφορετικό επεξεργαστή ή λειτουργικό σύστημα σε σχέση με την πλατφόρμα που εκτελείται ο μεταγλωττιστής, ο τελευταίος τότε ονομάζεται cross-compiler. Ένα πρόγραμμα που μεταφράζει από μια γλώσσα χαμηλού επιπέδου σε μια υψηλότερου επιπέδου ονομάζεται decompiler. Ένα πρόγραμμα που μεταφράζει από μια γλώσσα υψηλού επιπέδου σε μια άλλη, επίσης υψηλού επιπέδου, ονομάζεται συνήθως γλωσσικός μεταφραστής, μεταφραστής από πηγαίο κώδικα σε πηγαίο κώδικα (source to source translator) ή μετατροπέας γλωσσών. Ένα πρόγραμμα που μεταφράζει τη μορφή εκφράσεων σε άλλη μορφή, διατηρώντας την ίδια γλώσσα, ονομάζεται language rewriter.

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

Top
 
Αλλαγή μεγέθους γραμματοσειράς
Αντίθεση
Μετάβαση σε γραμμή εργαλείων