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

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

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

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

Ο όρος μεταγλωττιστής μεταγλωττιστών (compiler-compiler) χρησιμοποιείται συχνά για τις γεννήτριες συντακτικών αναλυτών, που είναι εργαλεία που βοηθούν στην κατασκευή λεκτικών και συντακτικών αναλυτών.
Q40056
πρόγραμμα υπολογιστή
Concept
Q9143
γλώσσα προγραμματισμού
Concept
Q128751
πηγαίος κώδικας
Concept
Q14902318
αντικειμενικός κώδικας
Concept
Q211496
γλώσσα προγραμματισμού υψηλού επιπέδου
Concept
Q165436
συμβολική γλώσσα
Concept
Q55813
γλώσσα μηχανής
Concept
Q5300
επεξεργαστή
Concept
Q9135
λειτουργικό σύστημα
Concept
None
cross-compiler
UNK
None
decompiler
UNK
None
γλωσσικός μεταφραστής
UNK
None
rewriter
UNK
Q835922
λεκτική ανάλυση
Concept
Q918333
προεπεξεργασία
Concept
None
συντακτική ανάλυση
UNK
None
μετάφραση καθοδηγούμενη από τη σύνταξη
UNK
None
παραγωγή κώδικα
UNK
None
βελτιστοποίηση κώδικα
UNK
None
μεταγλωττιστής μεταγλωττιστών
UNK
None
γεννήτριες συντακτικών αναλυτών
UNK
Q835922
λεκτικών
Concept
None
συντακτικών αναλυτών
UNK
Q47506
Μεταγλωττιστής
Concept
used by