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

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

Τυπικές Γλώσσες. Μεταγλωττιστές. (μέρος 1ο) Νίκος Παπασπύου, Κωστής Σαγώνας

Συντακτική ανάλυση. Μεταγλωττιστές. (μέρος 3ον) Νίκος Παπασπύου, Κωστής Σαγώνας

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

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

Τυπικές Γλώσσες. Μεταγλωττιστές. (μέρος 2ο) Νίκος Παπασπύου, Κωστής Σαγώνας

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

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

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

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

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

Λογιστικές Εφαρμογές Εργαστήριο

Προέλευση της Pazcal ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

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

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

3524 ÅÖÇÌÅÑÉÓ ÔÇÓ ÊÕÂÅÑÍÇÓÅÙÓ (ÔÅÕ ÏÓ ÄÅÕÔÅÑÏ)

Μικροβιολογία & Υγιεινή Τροφίμων

Θεωρία Πιθανοτήτων & Στατιστική

ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑΤΟΣ ΟΙΚΟΝΟΜΙΚΗ ΓΕΩΓΡΑΦΙΑ. Υπεύθυνη μαθήματος Αναστασία Στρατηγέα Αναπλ. Καθηγ. Ε.Μ.Π.

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

16. ÌåëÝôç ôùí óõíáñôþóåùí y=çìx, y=óõíx êáé ôùí ìåôáó çìáôéóìþí ôïõò.

ΧΩΡΟΤΑΞΙΑ ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑΤΟΣ. Αναστασία Στρατηγέα. Υπεύθυνη Μαθήματος

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εισαγωγή στους Αλγορίθμους

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εκκλησιαστικό Δίκαιο

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Υδραυλικά & Πνευματικά ΣΑΕ

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

ΝΟΜΙΣΜΑΤΙΚΗ ΟΙΚΟΝΟΜΙΚΗ ΠΟΛΙΤΙΚΗ. Ενότητα 3: Αγορά Χρήματος και επιτόκια. Γεώργιος Μιχαλόπουλος Τμήμα Λογιστικής-Χρηματοοικονομικής

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Εκκλησιαστικό Δίκαιο

Πληροφοριακά Συστήματα & Περιβάλλον Ασκήσεις

Εισαγωγή στους Αλγορίθμους

Ανθή Μαρία Κουρνιάτη. Νίκος Κουρνιάτης

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

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

ΕΛΕΝΗ ΓΕΡΟΥΛΑΝΟΥ. Εικονογράφηση ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ΓΙΑ ΠΑΙΔΙΑ ΝΗΠΙΑΓΩΓΕΙΟΥ ΛΗΔΑ ΒΑΡΒΑΡΟΥΣΗ ΕΚΔΟΣΕΙΣ ΠΑΠΑΔΟΠΟΥΛΟΣ

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 5: Προτασιακός Λογισμός: Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών

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

Οικονομική του περιβάλλοντος

µµ Setup : µ 2005

Ανθή Μαρία Κουρνιάτη. Νίκος Κουρνιάτης

Ανθή Μαρία Κουρνιάτη. Νίκος Κουρνιάτης

Αστικά υδραυλικά έργα

Νέες Τεχνολογίες στην Εκπαίδευση

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

¼ñãáíá Èåñìïêñáóßáò - ÓõóêåõÝò Øõêôéêþí Ìç áíçìüôùí

Διαχείριση Χρόνου & Δίκτυα στη Διοίκηση Έργων. Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ

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

Επίκουρη Καθηγήτρια, Σχολή Αρχιτεκτόνων Μηχανικών ΕΜΠ. Λέκτωρ ΠΔ407/80, Σχολή Αρχιτεκτόνων Μηχανικών ΕΜΠ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγή σε βασικές έννοιες του Internet

Διδάσκων: Νίκος Λαγαρός

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

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

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

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Λογιστικές Εφαρμογές Εργαστήριο

Μάρκετινγκ Αγροτικών Προϊόντων

ΜΑΘΗΜΑ: ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

τατιςτική ςτην Εκπαίδευςη II

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Ανθή Μαρία Κουρνιάτη. Νίκος Κουρνιάτης

Αλγόριθμοι Αναζήτησης

Εργαστήριο Χημείας Ενώσεων Συναρμογής

ΜΑΚΡΟΟΙΚΟΝΟΜΙΚΗ Ενότητα 1: Εισαγωγή: Το αντικείμενο της Μακροοικονομικής Η έννοια και του ΑΕΠ Ονομαστικό και πραγματικό ΑΕΠ

Cel animation. ÅöáñìïãÝò ðïëõìýóùí

Ανθή Μαρία Κουρνιάτη. Νίκος Κουρνιάτης

Διαφωτισμός και διαμόρφωση των πολιτικών ιδεολογιών στην Ελλάδα

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

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

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανθή Μαρία Κουρνιάτη. Νίκος Κουρνιάτης

Ó ÅÄÉÁÓÌÏÓ - ÊÁÔÁÓÊÅÕÇ ÓÔÏÌÉÙÍ & ÅÉÄÉÊÙÍ ÅÎÁÑÔÇÌÁÔÙÍ ÊËÉÌÁÔÉÓÌÏÕ V X

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανθή Μαρία Κουρνιάτη. Νίκος Κουρνιάτης

Ευαγγελικές αφηγήσεις της Ανάστασης

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

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

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

Περιβαλλοντική Χημεία

Εισαγωγή στους Αλγορίθμους

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

Εισαγωγή στη διδακτική των γλωσσών Ασκήσεις

Transcript:

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

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

ÅéóáãùãÞ (i) Ãëþóóåò ðñïãñáììáôéóìïý ÌåôáãëùôôéóôÝò Áíáãêáéüôçôá êáé éóôïñéêþ áíáäñïìþ 3

ÅéóáãùãÞ (i) Ãëþóóåò ðñïãñáììáôéóìïý ÌåôáãëùôôéóôÝò Áíáãêáéüôçôá êáé éóôïñéêþ áíáäñïìþ αρχικό πρόγραµµα τελικό πρόγραµµα µεταγλωττιστής διαγνωστικά µηνύµατα 4

ÅéóáãùãÞ (ii) Áñ éêþ ãëþóóá L A A ÔåëéêÞ ãëþóóá L Ãëþóóá õëïðïßçóçò L Y Y 5

ÅéóáãùãÞ (ii) Áñ éêþ ãëþóóá L A A ÔåëéêÞ ãëþóóá L Ãëþóóá õëïðïßçóçò L Y Y Óçìáóéïëïãßá ôïõ ðñïãñüììáôïò P óôç ãëþóóá L [[P ]] L : Inp(P ) Out(P ) 6

ÅéóáãùãÞ (ii) Áñ éêþ ãëþóóá L A A ÔåëéêÞ ãëþóóá L Ãëþóóá õëïðïßçóçò L Y Y Óçìáóéïëïãßá ôïõ ðñïãñüììáôïò P óôç ãëþóóá L [[P ]] L : Inp(P ) Out(P ) Óçìáóßá åíüò ìåôáãëùôôéóôþ C [[C ]] LY : L A L 7

ÅéóáãùãÞ (iii) Ïñèüôçôá ôïõ ìåôáãëùôôéóôþ: \ôï ìåôáãëùôôéóìýíï ðñüãñáììá ðñýðåé íá åßíáé éóïäýíáìï ìå ôï áñ éêü" 8

ÅéóáãùãÞ (iii) Ïñèüôçôá ôïõ ìåôáãëùôôéóôþ: \ôï ìåôáãëùôôéóìýíï ðñüãñáììá ðñýðåé íá åßíáé éóïäýíáìï ìå ôï áñ éêü" [[P ]] LA = [[[[C ]] LY (P )]] L 9

ÅéóáãùãÞ (iv) Åßäç ìåôáãëùôôéóôþí: Áðëïß Áíôßóôñïöïé (decompilers) Ìåôá-ìåôáãëùôôéóôÝò (meta-compilers) ÅéäéêÝò ðåñéðôþóåéò ìåôáãëùôôéóôþí: ÐñïåðåîåñãáóôÝò (preprocessors) ÓõìâïëïìåôáöñáóôÝò (assemblers) ÃåííÞôïñåò ðñïãñáììüôùí (program generators) 10

ÅéóáãùãÞ (v) ÓõíáöÞ åñãáëåßá Äéåñìçíåßò (interpreters) Äéá åéñéóôýò âéâëéïèçêþí (library managers) ÓõíäÝôåò (linkers) ÖïñôùôÝò (loaders) Åêäüôåò ðñïãñáììüôùí (program editors) ÅíôïðéóôÝò óöáëìüôùí (debuggers) Óôáôéóôéêïß áíáëõôýò (prolers) 11

ÊáôáóêåõÞ ìåôáãëùôôéóôþ (i) ÂáóéêÝò áðáéôþóåéò: Íá ëåéôïõñãåß óùóôü Íá óõììïñöþíåôáé ìå ôéò ðñïäéáãñáöýò ôçò áñ éêþò êáé ôçò ôåëéêþò ãëþóóáò Íá ìåôáãëùôôßæåé ðñïãñüììáôá êüèå ìåãýèïõò 12

ÊáôáóêåõÞ ìåôáãëùôôéóôþ (ii) Åðéðñüóèåôåò áðáéôþóåéò: Íá ðáñüãåé áðïäïôéêü êþäéêá Íá Ý åé ìéêñü ñüíï ìåôáãëþôôéóçò Íá Ý åé ìéêñýò áðáéôþóåéò ìíþìçò êáôü ôç ìåôáãëþôôéóç Íá äßíåé êáëü äéáãíùóôéêü ìçíýìáôá Íá óõíå ßæåé ýóôåñá áðü ëüèç Íá åßíáé ìåôáöýñóéìïò 13

ÖÜóåéò êáé ðñïúüíôá ôçò ìåôáãëþôôéóçò αρχικό πρόγραµµα ËåêôéêÞ áíüëõóç Λεκτική ανάλυση λεκτικές µονάδες ÓõíôáêôéêÞ áíüëõóç Συντακτική Ανάλυση ÓçìáóéïëïãéêÞ áíüëõóç συντακτικό δέντρο Σηµασιολογική Ανάλυση ÐáñáãùãÞ åíäéüìåóïõ êþäéêá Πίνακας συµβόλων συντακτικό δέντρο Παραγωγή ενδιάµεσου κώδικα Χειριστής σφαλµάτων Âåëôéóôïðïßçóç ενδιάµεσος κώδικας Βελτιστοποίηση ενδιάµεσου κώδικα ÐáñáãùãÞ ôåëéêïý êþäéêá ενδιάµεσος κώδικας Παραγωγή τελικού κώδικα τελικός κώδικας Βελτιστοποίηση τελικού κώδικα τελικό πρόγραµµα 14

ÈÝìáôá õëïðïßçóçò ÏñãÜíùóç óå ðåñüóìáôá ÏñãÜíùóç óå åìðñüóèéï êáé ïðßóèéï ôìþìá (front-end / back-end) ëåã ïò ïñèüôçôáò Åßäç äéáãíùóôéêþí ìçíõìüôùí êáé áíüíçøç ÅóùôåñéêÜ (internal) ÓöÜëìáôá (errors) ÐñïåéäïðïéçôéêÜ ìçíýìáôá (warnings) ÁðëÜ ìçíýìáôá (messages) 15

Åêêßíçóç { bootstrapping A A A A A S S ÂÞìá 1: ÌåôáãëùôôéóôÞò ãéá S A óôçí. ÂÞìá 2: ÌåôáãëùôôéóôÞò ãéá ôçí A óôçí S. ÂÞìá 3: ÌåôáãëùôôéóôÞò ãéá ôçí A óôçí A. 16

ÏñãÜíùóç óå Ýíá ðýñáóìá Εµπρόσθιο τµήµα Συντακτικός αναλυτής Λεκτικός αναλυτής Σηµασιολογικός αναλυτής Γεννήτορας ενδιάµεσου κώδικα Βελτιστοποιητής ενδιάµεσου κώδικα Χειριστής σφαλµάτων Πίνακας συµβόλων Γεννήτορας τελικού κώδικα Βελτιστοποιητής τελικού κώδικα Οπίσθιο τµήµα 17

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