Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Μεταγλωττιστές Νίκος Παπασπύου, Κωστής Σαγώνας Συντακτική ανάλυση (μέρος 3ον)
Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς.
Óõíôáêôéêïß áíáëõôýò 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 3 στοίβα
Óõíôáêôéêïß áíáëõôýò SLR(1) Áñ éêü: s 0 συµβολοσειρά εισόδου a 1 a 2... a n EOF s m x m... κορυφή επόµενο σύµβολο Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) s 0 4 στοίβα
Óõíôáêôéêïß áíáëõôýò SLR(1) Áñ éêü: s 0 συµβολοσειρά εισόδου Åßóïäïò: a k ÊáôÜóôáóç: s m ACTION(s m, a k ) s m κορυφή a 1 a 2... a n EOF επόµενο σύµβολο x m... Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) s 0 5 στοίβα
Óõíôáêôéêïß áíáëõôýò SLR(1) Áñ éêü: s 0 συµβολοσειρά εισόδου Åßóïäïò: a k ÊáôÜóôáóç: s m ACTION(s m, a k ) Ïëßóèçóç s m κορυφή a 1 a 2... a n EOF επόµενο σύµβολο x m... Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) s 0 6 στοίβα
Óõíôáêôéêïß áíáëõôýò SLR(1) Áñ éêü: s 0 Åßóïäïò: a k ÊáôÜóôáóç: s m ACTION(s m, a k ) Ïëßóèçóç ÅëÜôôùóç s m x m... κορυφή συµβολοσειρά εισόδου a 1 a 2... a n EOF επόµενο σύµβολο Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) s 0 7 στοίβα
Óõíôáêôéêïß áíáëõôýò SLR(1) Áñ éêü: s 0 Åßóïäïò: a k ÊáôÜóôáóç: s m ACTION(s m, a k ) Ïëßóèçóç ÅëÜôôùóç Áðïäï Þ s m x m... κορυφή συµβολοσειρά εισόδου a 1 a 2... a n EOF επόµενο σύµβολο Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) s 0 8 στοίβα
Óõíôáêôéêïß áíáëõôýò SLR(1) Áñ éêü: s 0 Åßóïäïò: a k ÊáôÜóôáóç: s m ACTION(s m, a k ) Ïëßóèçóç ÅëÜôôùóç Áðïäï Þ Åðüìåíç êáôüóôáóç: NEXT(s m, x m+1 ) s m x m... s 1 x 1 s 0 κορυφή συµβολοσειρά εισόδου a 1 a 2... a n EOF επόµενο σύµβολο Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) ACTION NEXT Συντακτικός Αναλυτής LR(1) 9 στοίβα
ÂïçèçôéêÝò Ýííïéåò (i) Óôïé åßï (item) 10
ÂïçèçôéêÝò Ýííïéåò (i) Óôïé åßï (item) óôù ð.. ï óõíôáêôéêüò êáíüíáò: A xy 11
ÂïçèçôéêÝò Ýííïéåò (i) Óôïé åßï (item) óôù ð.. ï óõíôáêôéêüò êáíüíáò: A xy Áíôéóôïé ïýí ôñßá óôïé åßá: A xy A x y A xy 12
ÂïçèçôéêÝò Ýííïéåò (i) Óôïé åßï (item) óôù ð.. ï óõíôáêôéêüò êáíüíáò: A xy Áíôéóôïé ïýí ôñßá óôïé åßá: A xy A x y A xy Ôï óôïé åßï ð.. A x y äåß íåé üôé áðü ôïí êáíüíá ðáñáãùãþò A xy Ý åé ìý ñé ôþñá áíáãíùñéóôåß ôï óýìâïëï x êáé áðïìýíåé íá áíáãíùñéóôåß ôï óýìâïëï y 13
ÂïçèçôéêÝò Ýííïéåò (ii) ÓõíÜñôçóç CLOSURE óôù óýíïëï óôïé åßùí I Ôï óýíïëï óôïé åßùí CLOSURE(I) åßíáé ôï åëü éóôï óýíïëï ãéá ôï ïðïßï I CLOSURE(I) Áí A α Bβ áíþêåé óôï CLOSURE(I) êáé õðüñ åé êáíüíáò B γ ôüôå B γ áíþêåé óôï CLOSURE(I) 14
ÂïçèçôéêÝò Ýííïéåò (iii) ÓõíÜñôçóç GOTO óôù óýíïëï óôïé åßùí I óôù x T N GOTO(I, x) = CLOSURE(J) J = { A αx β A α xβ I } 15
ÂïçèçôéêÝò Ýííïéåò (iii) ÓõíÜñôçóç GOTO óôù óýíïëï óôïé åßùí I óôù x T N GOTO(I, x) = CLOSURE(J) J = { A αx β A α xβ I } ÄçëáäÞ, ôï GOTO(I, x) ðåñéý åé üëá ôá óôïé åßá ôçò ãñáììáôéêþò ðïõ ìðïñïýí íá ðñïêýøïõí áðü ôá óôïé åßá ôïõ I áí áíáãíùñéóôåß ôï óýìâïëï x 16
ÊáôáóêåõÞ ÓÁ SLR(1) Õðïëïãéóìüò óõíüëïõ êáôáóôüóåùí ÐñïóèÞêç êáíüíá S S Ïé êáôáóôüóåéò åßíáé óýíïëá óôïé åßùí íáñîç ìå I0 = CLOSURE({ S S }) Õðïëïãéóìüò GOTO(In, x) ãéá êüèå x T N ÐñïóèÞêç íýùí êáôáóôüóåùí 17
ÊáôáóêåõÞ ÓÁ SLR(1) Õðïëïãéóìüò óõíüëïõ êáôáóôüóåùí ÐñïóèÞêç êáíüíá S S Ïé êáôáóôüóåéò åßíáé óýíïëá óôïé åßùí íáñîç ìå I0 = CLOSURE({ S S }) Õðïëïãéóìüò GOTO(In, x) ãéá êüèå x T N ÐñïóèÞêç íýùí êáôáóôüóåùí Õðïëïãéóìüò ðéíüêùí ACTION êáé GOTO Óõã þíåõóç óå Ýíáí ðßíáêá 18
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα» του ΕΜΠ έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.