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