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