Κεφάλαιο 4: Συντακτική ανάλυση (μέρος 3ο) Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 211 / 216
Συντακτικοί αναλυτές SLR(1) συµβολοσειρά εισόδου a 1 a 2... a n EOF s m x m... κορυφή επόµενο σύµβολο Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) s 0 στοίβα Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 212 / 216
Συντακτικοί αναλυτές SLR(1) Αρχικά: συµβολοσειρά εισόδου a 1 a 2... a n EOF s m x m... κορυφή επόµενο σύµβολο Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) s 0 στοίβα Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 212 / 216
Συντακτικοί αναλυτές SLR(1) Αρχικά: συµβολοσειρά εισόδου Είσοδος: a Κατάσταση: ACTION a s m κορυφή a 1 a 2... a n EOF επόµενο σύµβολο x m... Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) s 0 στοίβα Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 212 / 216
Συντακτικοί αναλυτές SLR(1) Αρχικά: συµβολοσειρά εισόδου Είσοδος: a Κατάσταση: ACTION a Ολίσθηση s m κορυφή a 1 a 2... a n EOF επόµενο σύµβολο x m... Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) s 0 στοίβα Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 212 / 216
Συντακτικοί αναλυτές SLR(1) Αρχικά: Είσοδος: a Κατάσταση: ACTION a Ολίσθηση Ελάττωση s m x m... κορυφή συµβολοσειρά εισόδου a 1 a 2... a n EOF επόµενο σύµβολο Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) s 0 στοίβα Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 212 / 216
Συντακτικοί αναλυτές SLR(1) Αρχικά: Είσοδος: a Κατάσταση: ACTION a Ολίσθηση Ελάττωση Αποδοχή s m x m... κορυφή συµβολοσειρά εισόδου a 1 a 2... a n EOF επόµενο σύµβολο Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) s 0 στοίβα Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 212 / 216
Συντακτικοί αναλυτές SLR(1) Αρχικά: Είσοδος: a Κατάσταση: ACTION a Ολίσθηση Ελάττωση Αποδοχή Επόμενη κατάσταση: NEXT s m x m... s 1 x 1 s 0 στοίβα κορυφή συµβολοσειρά εισόδου a 1 a 2... a n EOF επόµενο σύµβολο Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) ACTION NEXT Συντακτικός Αναλυτής LR(1) Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 212 / 216
Βοηθητικές έννοιες (i) Στοιχείο (item) Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 213 / 216
Βοηθητικές έννοιες (i) Στοιχείο (item) Έστω π.χ. ο συντακτικός κανόνας: Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 213 / 216
Βοηθητικές έννοιες (i) Στοιχείο (item) Έστω π.χ. ο συντακτικός κανόνας: Αντιστοιχούν τρία στοιχεία: Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 213 / 216
Βοηθητικές έννοιες (i) Στοιχείο (item) Έστω π.χ. ο συντακτικός κανόνας: Αντιστοιχούν τρία στοιχεία: Το στοιχείο π.χ. δείχνει ότι από τον κανόνα παραγωγής έχει μέχρι τώρα αναγνωριστεί το σύμβολο και απομένει να αναγνωριστεί το σύμβολο Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 213 / 216
Βοηθητικές έννοιες (ii) Συνάρτηση CLOSURE Έστω σύνολο στοιχείων Το σύνολο στοιχείων CLOSURE είναι το ελάχιστο σύνολο για το οποίο CLOSURE Αν ανήκει στο CLOSURE και υπάρχει κανόνας τότε ανήκει στο CLOSURE Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 214 / 216
Βοηθητικές έννοιες (iii) Συνάρτηση GOTO Έστω σύνολο στοιχείων Έστω GOTO CLOSURE Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 215 / 216
Βοηθητικές έννοιες (iii) Συνάρτηση GOTO Έστω σύνολο στοιχείων Έστω GOTO CLOSURE Δηλαδή, το GOTO περιέχει όλα τα στοιχεία της γραμματικής που μπορούν να προκύψουν από τα στοιχεία του αν αναγνωριστεί το σύμβολο Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 215 / 216
Κατασκευή ΣΑ SLR(1) Υπολογισμός συνόλου καταστάσεων Προσθήκη κανόνα Οι καταστάσεις είναι σύνολα στοιχείων Έναρξη με CLOSURE Υπολογισμός GOTO για κάθε Προσθήκη νέων καταστάσεων Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 216 / 216
Κατασκευή ΣΑ SLR(1) Υπολογισμός συνόλου καταστάσεων Προσθήκη κανόνα Οι καταστάσεις είναι σύνολα στοιχείων Έναρξη με CLOSURE Υπολογισμός GOTO για κάθε Προσθήκη νέων καταστάσεων Υπολογισμός πινάκων ACTION και GOTO Συγχώνευση σε έναν πίνακα Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 216 / 216