Διδακτικά Βιβλία του Παιδαγωγικού Ινστιτούτου

Αναζήτηση

Βρες
Εμφάνιση

Μεταφραστές

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

Οι μεταφραστές διακρίνονται σε τρεις μεγάλες κατηγορίες:

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

(1) Να αντικαθιστά κάθε συμβολική εντολή με την αντίστοιχη εντολή μηχανής (2) να υπολογίζει τις διευθύνσεις κάθε εντολής για να θέτει σωστά τις διευθύνσεις προορισμού στις εντολές άλματος και (3) να υπολογίζει τις διευθύνσεις των δεδομένων του προγράμματος και να αντικαθιστά τις ετικέτες που αναφέρονται σε δεδομένα με τις πραγματικές διευθύνσεις.

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

Β. Οι μεταγλωττιστές (compilers) διαβάζουν ένα πρόγραμμα σε μία γλώσσα προγραμματισμού και το μετατρέπουν στην αντίστοιχη ακολουθία από εντολές μηχανής. Κάθε εντολή της γλώσσας προγραμματισμού αντικαθίσταται από πολλές εντολές μηχανής.

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

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