ΕΠ33 - Μεταγλωττιστές

Γενικά

Σχολή: Ψηφιακής Τεχνολογίας

Τμήμα: Πληροφορικής και Τηλεματικής

Επίπεδο Σπουδών: Προπτυχιακό

Τίτλος Μαθήματος: Μεταγλωττιστές

Κωδικός Μαθήματος: ΕΠ33

Τύπος: Επιστημονικής Περιοχής 

Εξάμηνο Σπουδών: 8

Γλώσσα Διδασκαλίας και Εξετάσεων: Ελληνική

Προσφέρεται σε φοιτητές Erasmus: ΝΑΙ

Ηλεκτρονική Σελίδα Μαθήματος: https://eclass.hua.gr/courses/DIT107/

Αυτοτελείς Δραστηριότητες

Εβδομαδιαίες ώρες διδασκαλίας (Θεωρία): 3

Εβδομαδιαίες ώρες διδασκαλίας (Εργαστήριο): 0

Πιστωτικές μονάδες: 5

Μαθησιακά Αποτελέσματα

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

Γενικές Ικανότητες

Αυτόνομη Εργασία, Ομαδική Εργασία, Προσαρμογή σε νέες καταστάσεις, Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέψης

Περιεχόμενο Μαθήματος

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

1η εβδομάδα (Διάλεξη): Εισαγωγή στους μεταγλωττιστές. Φάσεις μεταγλώττισης.
2η εβδομάδα (Διάλεξη): Λεκτική Ανάλυση.
3η εβδομάδα (Εργαστήριο): Κατασκευή λεκτικού αναλυτή για μία απλή αριθμομηχανή.
4η εβδομάδα (Διάλεξη): Συντακτική Ανάλυση. Καθοδική συντακτική ανάλυση.
5η εβδομάδα (Διάλεξη):  Συντακτική Ανάλυση. Ανοδική συντακτική ανάλυση.
6η εβδομάδα (Εργαστήριο): Κατασκευή συντακτικού αναλυτή για την αριθμομηχανή.
7η εβδομάδα (Διάλεξη): Μετάφραση Οδηγούμενη από το Συντακτικό.
8η εβδομάδα (Διάλεξη): Σημασιολογική Ανάλυση.
9η εβδομάδα (Εργαστήριο): Κατασκευή αφηρημένου συντακτικού δέντρου και υλοποίηση σημασιολογικής ανάλυση για  την αριθμομηχανή.
10η εβδομάδα (Διάλεξη): Παραγωγή Ενδιάμεσου Κώδικα.
11η εβδομάδα (Διάλεξη): Περιβάλλον Εκτέλεσης
12η εβδομάδα (Διάλεξη): Εικονική μηχανή JVM (Java Virtual Machine).
13η εβδομάδα (Εργαστήριο): Παραγωγή εκτελέσιμου προγράμματος σε μορφή bytecode για το JVM για την αριθμομηχανή.

Διδακτικές και Μαθησιακές Μέθοδοι - Αξιολόγηση

Τρόπος Παρακολούθησης: πρόσωπο-με-πρόσωπο

Χρήση Τεχνολογιων Πληροφορίας και Επικοινωνιών: 

eclass μαθήματος, youtube channel

Οργάνωση Διδασκαλίας

 

Δραστηριότητα

Φόρτος Εργασίας (Εξαμήνου)

Παρακολούθηση διαλέξεων

27

Εργαστηριακή Άσκηση

12

Ατομικές ή Ομαδικές Εργασίες

60

Προετοιμασία για το Εργαστήριο - Αναφορές Εργαστηρίου

0

Εκπόνηση Μελέτης

0

Εκπόνηση Μελέτης

26

Σύνολο

125

Αξιολόγηση Φοιτητών

Προφορική εξέταση των εργασιών που εκπονούνται κατά την διάρκεια του εξαμήνου.

Συνιστώμενη Βιβλιογραφία

Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. 2nd edition. Addison-Wesley, 2007.

Andrew W. Appel, Modern Compiler Implementation in C. Cambridge University Press, 1998.

Andrew W. Appel, Modern Compiler Implementation in Java. Cambridge University Press, 1998.

Κ. Λάζος, Π. Κατσαρός, Ζ. Καραΐσκος. Μεταγλωττιστές Γλωσσών Προγραμματισμού: θεωρία και πράξη. Εκδόσεις Θεσσαλονίκη 2004.

Νικόλαος Παπασπύρου και Εμμανουήλ Σκορδαλάκης. Μεταγλωττιστές, Εκδόσεις Συμμετρία.