Νικήτας Σγούρος sgouros@unipi.gr Μεταγλωττιστές Νικήτας Σγούρος sgouros@unipi.gr
Συντακτική Ανάλυση Μια CFG είναι ένας γεννήτορας για μια CFL η οποία αναγνωρίζεται από ένα συντακτικό αναλυτή Για μια CFL μπορούμε να κατασκευάσουμε ένα συντακτικό αναλυτή πολυπλοκότητας ο (n3) Σε ειδικές περιπτώσεις (LL ή LR) η ανάλυση μπορεί να γίνει σε γραμμικό χρόνο. LL (= Left-to-Right, Left-most Derivation) (top-down) LR (= Left-to-Right, Right-most Derivation) (bottom-up) Η είσοδος διαβάζεται από τα αριστερά στα δεξιά
Είδη Συντακτικής Ανάλυσης Καθοδική Κατασκευάζουν το δέντρο συντακτικής ανάλυσης ξεκινώντας από τη ρίζα και προχωρώντας προς τα φύλλα προβλέποντας ποιά παραγωγή θα χρησιμοποιηθεί για να επεκταθεί ο τρέχων κόμβος βάσει της επόμενης λεκτικής μονάδας της εισόδου Ανοδική Κατασκευάζουν το δέντρο συντακτικής ανάλυσης ξεκινώντας από τα φύλλα και προχωρώντας προς τη ρίζα αναγνωρίζοντας όταν μια συλλογή κόμβων μπορούν να ενωθούν και να γίνουν τα παιδιά ενός νέου κόμβου του δέντρου.
Top-down vs Bottom-up Είσοδος: A, B, C;
Παράδειγμα LL(1)
Υλοποιήσεις LL Συντακτικός Αναλυτής Αναδρομκής Κατάβασης Συντακτικός Αναλυτής Αναδρομκής Κατάβασης Χειρονακτική υλοποίηση Πίνακας Συντακτικής Ανάλυσης LL + Πρόγραμμα Οδηγός Αυτόματη υλοποίηση
Παράδειγμα Συντακτικού Αναλυτή Αναδρομικής Κατάβασης
Παράδειγμα Δέντρου Συντακτικής Ανάλυσης
Καθοδική Συντακτική Ανάλυση με Πίνακα
Παράδειγμα
Σύνολα Πρόβλεψης
Πρώτο Πέρασμα
Σύνολα Πρόβλεψης
Πίνακας Συντακτικής Ανάλυσης LL(1)
Ανοδική Συντακτική Ανάλυση - Επισκόπηση
Ανοδική Συντακτική Ανάλυση - Γραμματική
Καταστάσεις
Characteristic Finite State Machine
Characteristic Finite State Machine - 2