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

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

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

Μεταγλωττιστές. Ενότητα 5: Λεκτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

Μεταγλωττιστές. Ενότητα 4: Τυπικές γλώσσες (Μέρος 3 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μεταγλωττιστές. Ενότητα 3: Τυπικές γλώσσες (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

Μεταγλωττιστές. Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

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

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

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

Μεταγλωττιστές. Ενότητα 7: Συντακτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ.

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

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

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

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

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

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

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

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

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

Ειδικά Θέματα Προγραμματισμού

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

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

Προγραμματισμός Η/Υ. 1 η ενότητα: Εισαγωγή στις γλώσσες προγραμματισμού. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων

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

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

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

Θερμοδυναμική - Εργαστήριο

Συστήματα Αναμονής. Ενότητα 1: Εισαγωγή. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

Συστήματα Αναμονής. Ενότητα 4: Αλυσίδες Markov. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

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

Συστήματα Αναμονής. Ενότητα 6: Θεωρία Ουρών. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD

Μεταγλωττιστές. Ενότητα 8: Συντακτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

ΔΙΔΑΣΚΩΝ: Δρ. Στυλιανός Τσίτσος

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Βάσεις Δεδομένων. Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

6. 1 Η έννοια του προγράμματος

Αυτοματοποιημένη χαρτογραφία

Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Εισαγωγή. Μεταγλωττιστές. Νίκος Παπασπύου, Κωστής Σαγώνας

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εισαγωγή στην Πληροφορική

Οργανωσιακή Συμπεριφορά Ενότητα 1: Η έννοια της οργάνωσης και διοίκησης

Ιστορία της μετάφρασης

{ int a = 5; { int b = 7; a = b + 3;

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

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

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

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

Συστήματα Αναμονής. Ενότητα 5: Ανέλιξη Poisson. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Εισαγωγή στην Πληροφορική

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Αρχιτεκτονική υπολογιστών

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

ΑΝΑΛΥΣΗ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΩΝ ΚΑΤΑΣΤΑΣΕΩΝ

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

Transcript:

Μεταγλωττιστές Ενότητα 1: Εισαγωγή Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα του ΤΕΙ Δυτικής Μακεδονίας και της Ανώτατης Εκκλησιαστικής Ακαδημίας Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Εισαγωγή

Σκοποί ενότητας Σκοπός της ενότητας είναι η εισαγωγή στο αντικείμενο των μεταγλωττιστών. 5

Περιεχόμενα ενότητας (1/2) Γλώσσες προγραμματισμού. Μεταγλωττιστές. Δομή ενός μεταγλωττιστή. Κατασκευή ενός μεταγλωττιστή. Φάσεις της μεταγλώττισης. 6

Περιεχόμενα ενότητας (2/2) Λειτουργία μεταγλωττιστών. Ανάπτυξη μεταγλωττιστών. 7

Γλώσσες προγραμματισμού (1/7) Γλώσσα προγραμματισμού. Συμβολισμός που χρησιμοποιείται για την περιγραφή υπολογισμών. Πρόγραμμα. Συμβολική περιγραφή ενός υπολογισμού σε κάποια γλώσσα. 8

Γλώσσες προγραμματισμού (2/7) Στόχοι μίας γλώσσας προγραμματισμού. Εύκολη περιγραφή των υπολογισμών. Αποδοτική εκμετάλλευση της υπολογιστική ισχύς των μηχανών. 9

Γλώσσες προγραμματισμού (3/7) Πρώτη Γενιά. Γλώσσα Μηχανής. Δεύτερη Γενιά. Γλώσσες assembly. Χρήση συμβόλων, μετατροπή σε κώδικα από ειδικά εργαλεία. 10

Γλώσσες προγραμματισμού (4/7) Τρίτη Γενιά. Διαδικαστικές και Αντικειμενοστραφείς Γλώσσες (C, Pascal, C++, JAVA). Τέταρτη Γενιά. Γλώσσες κοντά στη φυσική γλώσσα. Προσπέλαση δεδομένων. SQL- Structured Query Language. 11

Γλώσσες προγραμματισμού (5/7) Πέμπτη Γενιά. Κυρίως γλώσσες δηλωτικές που αφορούν την Τεχνητή Νοημοσύνη. Prolog, Lisp. 12

Γλώσσες προγραμματισμού (6/7) Γλώσσες προγραμματισμού υψηλού επιπέδου. Δεν είναι άμεσα εκτελέσιμες στις σημερινές μηχανές. Προσπάθειες για εξειδικευμένο υλικό δεν απέδωσαν. 13

Γλώσσες προγραμματισμού (7/7) Για κάθε γλώσσα προγραμματισμού υψηλού επιπέδου είναι απαραίτητη η ύπαρξη ενός μεταφραστή. Μεταγλωττιστές (Compilers). Διερμηνευτές (Interpreters). 14

Μεταγλωττιστές (1/2) Μεταγλωττιστής. Λογισμικό που μεταφράζει ένα πρόγραμμα από μία γλώσσα σε μία άλλη. Είδη Μεταγλωττιστών. Απλοί. Αντίστροφοι (decompilers). 15

Μεταγλωττιστές (2/2) Είδη Μεταγλωττιστών (Συνέχεια). Μετα-μεταγλωττιστές (meta-compilers). Υλοποίηση μεταγλωττιστών. Προσαρμοζόμενοι μεταγλωττιστές. Μετα-μεταγλωττιστές γεννήτορες. 16

Δομή ενός μεταγλωττιστή (1/3) Σχήμα 1. Δομή ενός μεταγλωττιστή. 17

Δομή ενός μεταγλωττιστή (2/3) Σχήμα 2. Δομή μεταγλωττιστή με ενδιάμεσο κώδικα, (πηγή: ο διδάσκων, 2014) 18

Δομή ενός μεταγλωττιστή (3/3) Ορισμός Προβλήματος. Ορισμός αρχικής και τελικής γλώσσας. Σύνταξη. Σημασιολογία. 19

Κατασκευή ενός μεταγλωττιστή Απαιτήσεις. Σωστή Λειτουργία. (1/2) Απόλυτη συμμόρφωση με τις προδιαγραφές της αρχικής και της τελικής γλώσσας. Ικανότητα μετάφρασης προγραμμάτων αυθαίρετα μεγάλου μήκους. Μεταφερσιμότητα. Παραγωγή αποδοτικού κώδικα. 20

Κατασκευή ενός μεταγλωττιστή (2/2) Απαιτήσεις (Συνέχεια). Μικρός χρόνος μεταγλώττισης. Μικρές απαιτήσεις σε μνήμη. Ρωμαλεότητα. Παραγωγή Διαγνωστικών Μηνυμάτων. 21

Φάσεις της μεταγλώττισης (1/14) Σχήμα 3. Φάσεις μεταγλώττισης (πηγή διδάσκων, 2014). 22

Φάσεις της μεταγλώττισης (2/14) Λεξική ή Λεκτική ανάλυση. Στόχος. Διαχωρισμός των χαρακτήρων του πηγαίου προγράμματος σε ομάδες. Λεξικές μονάδες - Έχουν συγκεκριμένη σημασία, σύμφωνη με τον ορισμό της πηγαίας γλώσσας. Για κάθε λεξική μονάδα που αναγνωρίζεται. Μεταφέρεται το αντίστοιχο αναγνωριστικό (token) στον συντακτικό αναλυτή. 23

Φάσεις της μεταγλώττισης (3/14) Παράδειγμα. 24

Φάσεις της μεταγλώττισης (4/14) Συντακτική ανάλυση. Δέχεται ως είσοδο τις λεξικές μονάδες. Παράγονται κατά τη λεξική ανάλυση. Προσπαθεί να ανιχνεύσει τη δομή του προγράμματος. 25

Φάσεις της μεταγλώττισης (5/14) Συντακτική ανάλυση (Συνέχεια). Ως αποτέλεσμα παράγεται μία δομή. Ανάλογα με τη μορφή της αποκαλείται. Είτε παράγωγο. Είτε συντακτικό δένδρο. 26

Φάσεις της μεταγλώττισης (6/14) Σχήμα 4. Φάσεις μεταγλώττισης - συντακτική ανάλυση 1 (πηγή: ο διδάσκων, 2014). 27

Φάσεις της μεταγλώττισης (7/14) Σχήμα 5. Φάσεις μεταγλώττισης - συντακτική ανάλυση 2 (πηγή: ο διδάσκων, 2014). 28

Φάσεις της μεταγλώττισης (8/14) Σημασιολογική ανάλυση. Η σημασία ενός προγράμματος καθορίζει τη συμπεριφορά του κατά την εκτέλεση. 29

Φάσεις της μεταγλώττισης (9/14) Σχήμα 6. Φάσεις μεταγλώττισης - σημασιολογική ανάλυση (πηγή: ο διδάσκων, 2014). 30

Φάσεις της μεταγλώττισης (10/14) Βελτιστοποίηση πηγαίου προγράμματος. Πραγματοποιείται μετά από τη σημασιολογική ανάλυση. Μπορεί να ενσωματώσει βελτιστοποιήσεις. Στο παραγόμενο δένδρο. Ή σε μία γραμμική αναπαράσταση αυτού γνωστή με τον όρο κώδικας τριών διευθύνσεων. 31

Φάσεις της μεταγλώττισης (11/14) Βελτιστοποίηση πηγαίου προγράμματος (Συνέχεια). Το παραγόμενο δένδρο και ο κώδικας τριών διευθύνσεων. Είναι εναλλακτικές μορφές ενδιάμεσου κώδικα ή ενδιάμεσης αναπαράστασης. 32

Φάσεις της μεταγλώττισης (12/14) Περιπτώσεις βελτιστοποιήσεων. Σύμπτυξη σταθερών. Διάδοση εντολών εκχώρησης τιμής στο υπόλοιπο πρόγραμμα. Απομάκρυνση των μη προσιτών τμημάτων κώδικα. Μετακίνηση κώδικα έξω από βρόχους επανάληψης κ.α.. 33

Φάσεις της μεταγλώττισης (13/14) Σύνθεση τελικού προγράμματος. Σε αυτή τη φάση χρησιμοποιείται η ενδιάμεση αναπαράσταση του πηγαίου προγράμματος. Για τη δημιουργία κώδικα. Σημασιολογικά ίδιου με τον πηγαίο, στη γλώσσαστόχο. Ο κώδικας αυτός μπορεί να δημιουργηθεί για ένα συγκεκριμένο επεξεργαστή ή για κάποια ιδεατή μηχανή με χαρακτηριστικά συμβατικού επεξεργαστή. 34

Φάσεις της μεταγλώττισης (14/14) Βελτιστοποίηση τελικού προγράμματος. Οι εναλλακτικές δυνατότητες βελτίωσης του παραγόμενου κώδικα. Εξαρτώνται πάντα από τον επεξεργαστή. Για τον οποίο δημιουργείται το πρόγραμμα. Π.χ. από το πλήθος και την εξειδίκευση των καταχωρητών του επεξεργαστή, τις μορφές προσπέλασης στη μνήμη και τις εντολές που διαθέτει. 35

Λειτουργία μεταγλωττιστών (1/3) Άλλα προγράμματα. Διερμηνευτές (interpreters). Συμβολομεταφραστές (assemblers). Διασυνδέτες (linkers). Φορτωτές (Loaders). 36

Λειτουργία μεταγλωττιστών (2/3) Άλλα προγράμματα (Συνέχεια). Προεπεξεργαστές (Preprocessors). Συντάκτες/διορθωτές (Program Editors). Ανιχνευτές λαθών (Debuggers). 37

Λειτουργία μεταγλωττιστών (3/3) Σχήμα 7. Λειτουργία μεταγλωττιστών (πηγή: ο διδάσκων, 2014). 38

Ανάπτυξη μεταγλωττιστών (1/4) Διαγράμματα σχήματος T: Σχήμα 8. Διάγραμμα σχήματος Τ (πηγή: ο διδάσκων, 2014). 39

Ανάπτυξη μεταγλωττιστών (2/4) Σύνθεση διαγραμμάτων σχήματος T: Σχήμα 9. Σύνθεση διαγραμμάτων σχήματος Τα (πηγή: ο διδάσκων, 2014). 40

Ανάπτυξη μεταγλωττιστών (3/4) Αυτοδύναμη ανάπτυξη: Σχήμα 10. Αυτοδύναμη ανάπτυξη bootstrapping (πηγή: ο διδάσκων 2014). 41

Ανάπτυξη μεταγλωττιστών (4/4) Μεταφορά μεταγλωττιστή αυτοδύναμης ανάπτυξης σε νέα γλώσσα στόχο: Σχήμα 11. Μεταφορά μεταγλωττιστή αυτοδύναμης ανάπτυξης σε νέα γλώσσα στόχο (πηγή: ο διδάσκων,2014). 42

Βιβλιογραφία 1. «Μεταγλωττιστές γλωσσών Προγραμματισμού: Θεωρία και Πράξη», Λάζος, Κ.Ε., Κατσαρός και Π.Θ., Καραΐσκος, Ζ.Κ. (2004), Εκδόσεις Θεσσαλονίκη, [ISBN:960-87723-4-6]. 2. «Μεταγλωττιστές», Παπασπύρου, Ν.Σ. και Σκορδαλάκης, Ε.Σ (2002), Εκδόσεις Συμμετρία, 2002, [ISBN: 978-960-266-135-2]. 43

Τέλος Ενότητας 44