Μεταγλωττιστές

Εξάμηνο:
6ο
Τύπος Μαθήματος:
Κατ’ Επιλογή Υποχρεωτικό Μάθημα (ΕΥΜ)
Κατεύθυνση:
Α
Κωδικός:
Κ31
ECTS:
6
Διδακτικές Ώρες
Ώρες Θεωρίας:
4
Ώρες Φροντιστηρίου:
1
Ώρες Εργαστηρίου:
0
Ειδικεύσεις
Θεμελιώσεις Πληροφορικής (Ε1):
-
Διαχείριση Δεδομένων και Γνώσης (Ε2):
-
Λογισμικό (Ε3):
(Υ) Υποχρεωτικό
Υλικό και Αρχιτεκτονική (Ε4):
(B) Βασικό
Επικοινωνίες και Δικτύωση (Ε5):
-
Επεξεργασία Σήματος και Πληροφορίας (Ε6):
-
Περιγραφή Μαθήματος

Εξερεύνηση θεμελιωδών εννοιών και τεχνικών μεταγλώττισης. (1) Τυπικές γλώσσες: κανονικές γλώσσες, γλώσσες χωρίς συμφραζόμενα, κατηγορικές γραμματικές. (2) Λεκτική ανάλυση, χρήση μεταεργαλείων για τη δημιουργία λεκτικών αναλυτών. (3) Συντακτική ανάλυση: συντακτικοί αναλυτές από πάνω προς τα κάτω (top-down) και από κάτω προς τα πάνω (bottom-up), ανάνηψη από σφάλματα, χρήση μεταεργαλείων για τη δημιουργία συντακτικών αναλυτών. (4) Πίνακας συμβόλων. Σημασιολογική ανάλυση: είδη σημασιολογικών ελέγχων, συστήματα τύπων, δυναμικός έλεγχος τύπων. (5) Παραγωγή ενδιάμεσου κώδικα. (6) Βελτιστοποίηση κώδικα. (7) Παραγωγή τελικού κώδικα.

Βιβλιογραφία

Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman Compilers: Principles, Techniques, and Tools. 2nd edition. Addison-Wesley, 2007. http://dragonbook.stanford.edu/
Published in translation by Newtech Publications (Νέων Τεχνολογιών)
Nikolaos S. Papaspyrou and Emmanuel St. Skordalakis, Compilers, Symmetria, Athens, 2002.
(Νικόλαος Παπασπύρου και Εμμανουήλ Σκορδαλάκης. Μεταγλωττιστές, Εκδόσεις Συμμετρία.)
K. Lazos, P. Katsaros, Z. Karaiskos, Compilers of Programming Languages: Theory and Practice, Thesaloniki 2004
Κ. Λάζος, Π. Κατσαρός, Ζ. Καραΐσκος. Μεταγλωττιστές Γλωσσών Προγραμματισμού: θεωρία και πράξη. Εκδόσεις Θεσσαλονίκη 2004.
http://delab.csd.auth.gr/~katsaros/CompilersBook.htm

Αναλυτική Περιγραφή