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


Κωδικός 3.4.3186.8
Εξάμηνο 8o
Ροή Λ - Λογισμικό Η/Υ
Κατηγορία Κατ' επιλογήν υποχρεωτικό
Ώρες Διδασκαλίας - Ώρες Εργαστηρίου 2 - 2
Διδάσκοντες Νικόλαος Παπασπύρου, Κωστής Σαγώνας
Σύνδεσμοι MyCourses, Ιστοσελίδα Μαθήματος
Πλατφόρμα Διδασκαλίας Τμήμα 1: Microsoft Teams

Περιγραφή

Εισαγωγή: μεταγλωττιστές και συναφή εργαλεία, φάσεις μεταγλώττισης, οργάνωση μεταγλωττιστή. Ορισμός γλωσσών: συμβολισμοί, αυτόματα, γραμματικές. Λεκτική ανάλυση: λεκτικές μονάδες, σχεδίαση λεκτικού αναλυτή. Συντακτική ανάλυση: σχεδίαση συντακτικού αναλυτή από πάνω προς τα κάτω ή από κάτω προς τα πάνω. Πίνακες συμβόλων. Σημασιολογική ανάλυση: συστήματα τύπων και σημασιολογικός έλεγχος. Παραγωγή ενδιαμέσου κώδικα: μορφές ενδιάμεσου κώδικα, μετάφραση οδηγούμενη από τη σύνταξη. Παραγωγή τελικού κώδικα: o τελικός υπολογιστής, διαχείριση μνήμης και εγγραφήματα δραστηριοποίησης, παραγωγή τελικού κώδικα εντολή προς εντολή. Βελτιστοποίηση κώδικα. Εργαλεία αυτόματης κατασκευής μεταγλωττιστών: lex/flex, yacc/bison, μετα-μεταγλωττιστές.
Εργαστήριο: σχεδίαση και υλοποίηση ενός μεταγλωττιστή για μια υποθετική γλώσσα προγραμματισμού.