Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program)

Εισαγωγή. Γλώσσες προγραμματισμού Μεταγλωττιστές Αναγκαιότητα και ιστορική αναδρομή

Κεφάλαιο 2: Μεταφραστές

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Λογισμικό Συστήματος. Κλειώ Σγουροπούλου

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Βασίλειος Κοντογιάννης ΠΕ19

Προγραμματισμός Υπολογιστών

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Α. Ερωτήσεις Ανάπτυξης

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

Λεκτικός Αναλυτής. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

Η γλώσσα προγραμματισμού C

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Μαλούτα Θεανώ Σελίδα 1

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση. Στη δήλωση ορισμό κανονικών εκφράσεων

Εισαγωγή στον προγραμματισμό

Περί Προγραμματισμού και Γλωσσών Προγραμματισμού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

ΑΕΠΠ Ερωτήσεις θεωρίας

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

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Πληροφορική 2. Γλώσσες Προγραμματισμού

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΠΡΟΓΡΑΜΜΑ ΠΑΙΔΑΓΩΓΙΚΗΣ ΚΑΤΑΡΤΙΣΗΣ 2 η ΕΡΓΑΣΙΑ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ

Δομημένος Προγραμματισμός

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Προγραμματισμός Ι (HY120)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΩ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

6. Εισαγωγή στον προγραµµατισµό

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Επιµέλεια Θοδωρής Πιερράτος

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ ΤΗΣ Γ' ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

Εισαγωγή στον Προγραμματισμό

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 3 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

ΚΕΦΑΛΑΙΟ 6 Ο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

III. Πως μετατρέπεται το πηγαίο πρόγραμμα σε εκτελέσιμο πρόγραμμα;

ΚΕΦΑΛΑΙΑ XIII, XIV. Εκσφαλμάτωση προγράμματος - Κύκλος Ζωής Λογισμικού

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΕΙΣΑΓΩΓΗ ΣΤOΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Εισαγωγή στο περιβάλλον Code::Blocks

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»

ΚΕΦΑΛΑΙΟ 1 ο : ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ (HARDWARE)

ΜΑΘΗΜΑ: Μεταγλωττιστές

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ - ΓΛΩΣΣΑ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI

Προγραμματισμός I (Θ)

Επεξεργασία Ερωτήσεων

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

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

Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2007

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Προγραμματισμός Η/Υ. Λογισμικό. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

ΛΟΓΙΣΜΙΚΟ (software)

Εισαγωγή στη γλώσσα προγραμματισμού C++

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Επεξεργασία Ερωτήσεων

Transcript:

Εισαγωγή Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Μεταγλωττιστής Αρχικό πρόγραμμα (source program) Μεταγλωττιστής Τελικό πρόγραμμα (object program) Διαγνωστικά μηνύματα

Μεταγλωττιστής Παίρνει σαν είσοδο το αρχικό πρόγραμμα Είναι το πρόγραμμα το οποίο θέλουμε να μεταγλωττίσουμε Βγάζει σαν έξοδο το ισοδύναμο τελικό πρόγραμμα Είναι το πρόγραμμα στο οποίο μετασχηματίζουμε το αρχικό πρόγραμμα Συνήθως είναι πρόγραμμα σε γλώσσα μηχανής κάποιου επεξεργαστή Εμφανίζει διαγνωστικά μηνύματα Συνήθως μηνύματα λάθους Μερικές φορές και μηνύματα προειδοποίησης

Γλώσσες Αρχική γλώσσα Τελική γλώσσα Γλώσσα υλοποίησης

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

Ανάπτυξη Μεταγλωττιστών Υλοποίηση εξ αρχής σε κάποια γλώσσα προγραμματισμού Υλοποίηση με τη χρήση εργαλείων Η υλοποίηση τους έχει γίνει χρησιμοποιώντας κατάλληλα εργαλεία που αυτοματοποιούν τη διαδικασία και την παραγωγή κώδικα Σύνθεση από μικρά τμήματα λογισμικού που συνδυάζονται ανάλογα με τις ανάγκες

Υλοποίηση με χρήση εργαλείων Περιγραφή των λεκτικών μονάδων Σημασιολογική πληροφορία Περιγραφή της τελικής γλώσσας (?) Περιγραφή της γραμματική της γλώσσας Εργαλείο Ανάπτυξης Μεταγλωττιστής Κώδικας που υλοποιεί διάφορες λειτουργίες Διαγνωστικά μηνύματα

Παράδειγμα Εργαλείων Ανάπτυξης Flex (lex) Παίρνει έως είσοδο την περιγραφή κάποιων λεκτικών μονάδων και επιστρέφει ένα λεκτικό αναλυτή. Με την αναγνώριση μίας λεκτικής μονάδας δίνει τη δυνατότητα εκτέλεσης κώδικα ή επιστροφή τιμής στον bison Bison (yacc) Παίρνει έως είσοδο την περιγραφή των κανόνων μίας γλώσσας και επιστρέφει έναν συντακτικό αναλυτή για τη γλώσσα αυτή. Με την αναγνώριση μίας δομής της γλώσσας δίνει τη δυνατότητα εκτέλεσης κώδικα

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

Παράδειγμα Σύνθεσης από Τμήματα Λογισμικού Ανάλυση κώδικα C Βελτιστοποίηση Α Παραγωγή Κώδικα για Windows Ανάλυση κώδικα C++ Βελτιστοποίηση Β Παραγωγή Κώδικα για Linux Ανάλυση κώδικα C# Βελτιστοποίηση Γ Παραγωγή Κώδικα για MAC Βελτιστοποίηση Δ

Χρήσιμη Ορολογία Διαμεταγλωττιστές (cross-compilers) Ο υπολογιστής στον οποίο γίνεται η μετάφραση είναι διαφορετική αρχιτεκτονική από τον υπολογιστή στον οποίο θα εκτελεστεί το τελικό πρόγραμμα Προεπεξεργαστές (preprocerssors) Από αρχική γλώσσα πάλι σε αρχική γλώσσα αφού έχει κάνει κάποιες τροποποιήσεις, π.χ. αντικατάσταση συμβολικών ονομάτων των σταθερών με τις πραγματικές τιμές τους Συμβολομεταφραστές (assemblers) Από συμβολική γλώσσα μηχανής σε γλώσσα μηχανής μία προς μία αντιστοίχιση εντολών

Χρήσιμη Ορολογία Βιβλιοθήκες χρόνου εκτέλεσης (run time libraries) Υποπρογράμματα και συναρτήσεις σε μεταγλωττισμένη μορφή Συνδέτες (linkers) Έχουν πια ενσωματωθεί στη διαδικασία μεταγλώττισης, παλαιότερα ήταν χωριστά προγράμματα Δέχονται σαν είσοδο μεταγλωττισμένα αρχεία και βιβλιοθήκες χρόνου εκτέλεσης και παράγουν ως έξοδο ένα εκτελέσιμο πρόγραμμα Αναλύουν τις σχετικές διευθύνσεις των μεταγλωττισμένων αρχείων και των προγραμμάτων βιβλιοθήκης και τα ενοποιούν ώστε να είναι όλες με βάση μία σχετική διεύθυνση

Χρήσιμη Ορολογία Φορτωτές (loaders) Δέχονται σαν είσοδο ένα εκτελέσιμο πρόγραμμα και το τοποθετούν στη μνήμη για να είναι έτοιμο προς εκτέλεση Μετατρέπουν τις σχετικές διευθύνσεις σε απόλυτες διευθύνσεις Αποτελεί μέρος του λειτουργικού συστήματος Εκδότες προγραμμάτων (program editors) Χρησιμοποιούνται στη συγγραφή, διόρθωση προγραμμάτων και αποθήκευσή τους στη περιφερειακή μονάδα του υπολογιστή

Χρήσιμη Ορολογία Εντοπιστές σφαλμάτων (debuggers) Βηματική εκτέλεση προγραμμάτων Παρακολούθηση τιμών μεταβλητών Τοποθέτηση σημείων διακοπής εκτέλεσης Στατιστικοί αναλυτές (profiles) Δίνουν πληροφορίες σχετικά με την εκτέλεση ενός προγράμματος, π.χ. απασχόληση των επεξεργαστών όταν χρησιμοποιούμε ένα υπολογιστικό σύστημα πολλών επεξεργαστών

Διερμηνείς (interpreters) Μετάφραση και εκτέλεση εντολή προς εντολή σε αντίθεση με τους μεταγλωττιστές που μεταφράζουν μία φορά το πηγαίο πρόγραμμα το αποθηκεύουν στο δίσκο και το εκτελούν από εκεί Ευκολότερη ανάπτυξη λογισμικού από ότι με τους μεταγλωττιστές Ευκολότερη η βήμα προς βήμα εκτέλεσή άρα και η αποσφαλμάτωση Σημαντικά πιο αργοί από τους μεταγλωττιστές Ασφάλεια εκτέλεσης σε σχέση με τους μεταγλωττιστές

Απαιτήσεις από ένα Μεταγλωττιστή Σωστή λειτουργία Να συμμορφώνεται με τις προδιαγραφές αρχικής και τελικής γλώσσας Να μεταφράζει προγράμματα αυθαίρετου μεγάλου μήκους Να παράγει αποδοτικό κώδικα Να έχει μικρό χρόνο εκτέλεσης Να έχει μικρές απαιτήσεις μνήμης κατά τη μεταγλώττιση Να δίνει καλά διαγνωστικά μηνύματα Να έχει τη δυνατότητα συνέχισης ύστερα από τον εντοπισμό σφαλμάτων Να είναι μεταφέρσιμος

Οι Φάσεις της Μεταγλώττισης λεκτική ανάλυση συντακτική ανάλυση Πίνακας Συμβόλων σημασιολογική ανάλυση παραγωγή ενδιάμεσου κώδικα Διαχείριση λαθών βελτιστοποίηση ενδιάμεσου κώδικα παραγωγή τελικού κώδικα βελτιστοποίηση τελικού κώδικα

Λεκτική Ανάλυση Αρχικό πρόγραμμα Χαρακτήρας-χαρακτήρας Λεκτική Ανάλυση Λεκτικές μονάδες Διαγνωστικά μηνύματα

Συντακτική Ανάλυση Λεκτικές Μονάδες Συντακτική Ανάλυση Συντακτικό δέντρο Διαγνωστικά μηνύματα

Σημασιολογική Ανάλυση Συντακτικό δέντρο Σημασιολογική Ανάλυση Διαγνωστικά μηνύματα

Παραγωγή Ενδιάμεσου Κώδικα Συντακτικό δέντρο Παραγωγή Ενδιάμεσου Κώδικα Ενδιάμεσος Κώδικας

Βελτιστοποίηση Ενδιάμεσου Κώδικα Ενδιάμεσος Κώδικας Βελτιστοποίηση Ενδιάμεσου Κώδικα Ενδιάμεσος Κώδικας

Πίνακας Συμβόλων Λεκτικές μονάδες Συντακτικό Δέντρο Πίνακας Συμβόλων Πίνακας με πληροφορίες για τις μεταβλητές, σταθερές, συναρτήσεις, διαδικασίες, κλπ.

Παραγωγή Τελικού Κώδικα Ενδιάμεσος Κώδικας Πίνακας Συμβόλων Παραγωγή Τελικού Κώδικα Τελικός Κώδικας

Βελτιστοποίηση Τελικού Κώδικα Τελικός Κώδικας Βελτιστοποίηση Τελικού Κώδικα Τελικός Κώδικας

Οργάνωση Μεταγλωττιστή λεκτική ανάλυση συντακτική ανάλυση σημασιολογική ανάλυση παραγωγή ενδιάμεσου κώδικα χειριστής σφαλμάτων βελτιστοποίηση ενδιάμεσου κώδικα Εμπρόσθιο τμήμα (front-end) παραγωγή τελικού κώδικα βελτιστοποίηση τελικού κώδικα πίνακας συμβόλων Οπίσθιο τμήμα (back-end)