Ενότητα #1
Λεκτική Ανάλυση. Υλοποιήσεις με αυτόματα πεπερασμένων καταστάσεων (DFA).
Ενδεικτική θεωρία: Ενότητες 2.2 και 2.5 από το βιβλίο "ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΜΕΤΑΓΛΩΤΤΙΣΤΩΝ" των Keith D. Cooper, Linda Torczon.
Υλικό ενότητας #1
Ενότητα #2
Κανονικές εκφράσεις (regular expressions). Ισοδυναμία και υλοποιήσεις με NFA/DFA.
Ενδεικτική θεωρία: Ενότητες 2.3 - 2.4 από το βιβλίο "ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΜΕΤΑΓΛΩΤΤΙΣΤΩΝ" των Keith D. Cooper, Linda Torczon.
Υλικό εργαστηρίων ενότητας #2
- Σημειώσεις: Κανονικές εκφράσεις και Python.
- Σημειώσεις: Λεκτικοί αναλυτές με την κλάση Tokenizer (και οι αντίστοιχες διαφάνειες).
Εργασία #1
- Εκφώνηση [Παράδοση:
6/4/202619/4/2026].
Ενότητα #3
Συντακτική ανάλυση: αρχικές έννοιες και υλοποιήσεις αναδρομικής κατάβασης LL(1).
Ενδεικτική θεωρία: Ενότητες 3.1 - 3.2 από το βιβλίο "ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΜΕΤΑΓΛΩΤΤΙΣΤΩΝ" των Keith D. Cooper, Linda Torczon.
Υλικό εργαστηρίων ενότητας #3
- Διαφάνειες: Εισαγωγή στη Συντακτική Ανάλυση.
- Διαφάνειες: Συντακτική ανάλυση top-down LL(1).
- Υπόδειγμα κώδικα: Template συντακτικού αναλυτή για τη γραμματική a&b (και η λύση με τον κώδικα συμπληρωμένο).
- Διαφάνειες: Σύνολα FIRST.
- Κώδικας Python: Συντακτικός αναλυτής για τη γραμματική Logo graphics (1η εκδοχή, 2η εκδοχή).
- Διαφάνειες: Σύνολα FOLLOW.
- Κώδικας Python: Συντακτικός αναλυτής για τη γραμματική Logo graphics (3η εκδοχή).
- Διαφάνειες: Η γραμματική των αριθμητικών εκφράσεων.
- Κώδικας Python: Συντακτικός αναλυτής για τη γραμματική των αριθμητικών εκφράσεων.
- Κώδικας Python: Συντακτικός αναλυτής με ταυτόχρονη εκτέλεση πράξεων.
- Κώδικας Python: Συντακτικός αναλυτής με ταυτόχρονη εκτέλεση πράξεων (διόρθωση προσεταιριστικότητας).
Ενότητα #4
Abstract Syntax Trees (ASTs).
Ενδεικτική θεωρία: Ενότητες 5.1 - 5.2 από το βιβλίο "ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΜΕΤΑΓΛΩΤΤΙΣΤΩΝ" των Keith D. Cooper, Linda Torczon.
Υλικό εργαστηρίων ενότητας #4
- Διαφάνειες: Κατασκευή και διερμηνεία AST αριθμητικών εκφράσεων.
- Κώδικας Python: Συντακτικός αναλυτής με δημιουργία AST.
- Κώδικας Python: Συντακτικός αναλυτής και AST interpreter.
- Διαφάνειες: Προσθήκη λογικών τελεστών και τελεστών σύγκρισης.
- Κώδικας Python: Συντακτικός αναλυτής και AST interpreter (λογικοί τελεστές).
- Διαφάνειες: Προσθήκη εντολών if και while στη γραμματική των αριθμητικών εκφράσεων.
- Κώδικας Python: Συντακτικός αναλυτής και AST interpreter (if και while).
- Διαφάνειες: Παραγωγή κώδικα τριών διευθύνσεων (TAC).
Εργασία #2
- Εκφώνηση [Παράδοση: 5/6/2026].