Ενότητα #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
- Εκφώνηση [Παράδοση: 26/3/2025].
Ενότητα #3
Συντακτική ανάλυση: αρχικές έννοιες.
Ενδεικτική θεωρία: Ενότητες 3.1 - 3.2 από το βιβλίο "ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΜΕΤΑΓΛΩΤΤΙΣΤΩΝ" των Keith D. Cooper, Linda Torczon.
Υλικό εργαστηρίων ενότητας #3
- Διαφάνειες: Εισαγωγή στη Συντακτική Ανάλυση.
- Διαφάνειες: Συντακτική ανάλυση top-down LL(1).
- Υπόδειγμα κώδικα: Template συντακτικού αναλυτή για τη γραμματική a&b (και η λύση με τον κώδικα συμπληρωμένο).
- Διαφάνειες: Σύνολα FIRST και FOLLOW.
- Αριθμητικές εκφράσεις: δοκιμαστική είσοδος
- Κώδικας Python: Συντακτικός αναλυτής για τη γραμματική των αριθμητικών εκφράσεων.
- Διαφάνειες: Εκτέλεση κατά τη διάρκεια της συντακτικής ανάλυσης.
- Διαφάνειες: Διόρθωση τελεστών αριστερής προσεταιριστικότητας.
- Κώδικας Python: Συντακτικός αναλυτής με ταυτόχρονη εκτέλεση πράξεων.
- Κώδικας Python: Συντακτικός αναλυτής - interpreter για νέους τελεστές.
Ενότητα #4
Abstract Syntax Trees (ASTs).
Ενδεικτική θεωρία: Ενότητες 5.1 - 5.2 από το βιβλίο "ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΜΕΤΑΓΛΩΤΤΙΣΤΩΝ" των Keith D. Cooper, Linda Torczon.
Υλικό εργαστηρίων ενότητας #4
- Διαφάνειες: Κατασκευή AST αριθμητικών εκφράσεων.
- Διαφάνειες: Εκτέλεση (διερμηνεία) AST αριθμητικών εκφράσεων.