Σχεδίαση Γλωσσών & Μεταγλωττιστζς

Σχετικά έγγραφα
Σχεδίαση Γλωσσών & Μεταγλωττιστζς

Σχεδίαση Γλωσσών & Μεταγλωττιστζς

Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση VIΙ. Εαρινό Εξάμηνο Lec 15 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

Σχεδίαση Γλωσσών & Μεταγλωττιστζς

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

Σχεδίαση Γλωσσών & Μεταγλωττιστζς

Σχεδίαση Γλωσσών & Μεταγλωττιστζς

Σχεδίαση Γλωσσών & Μεταγλωττιστζς

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

Σχεδίαση Γλωσσών & Μεταγλωττιστζς

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Αντισταθμιστική ανάλυση

Ενδεικτικά Θέματα Στατιστικής ΙΙ

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

Παλαιοσλαβική Γλώσσα. Ενότητα 11: Μορφολογία Τα Ονόματα/Αντωνυμίες. Αλεξάνδρα Ιωαννίδου. Τμήμα Σλαβικών Σπουδών

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

ΘΔΜΑ 1 ο Μονάδες 5,10,10

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γευηέρα 11 Ηουνίου 2018 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

ΔΝΓΔΙΚΤΙΚΔΣ ΛΥΣΔΙΣ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ ΚΑΤΔΥΘΥΝΣΗΣ Γ ΛΥΚΔΙΟΥ ΓΔΥΤΔΡΑ 27 ΜΑΪΟΥ 2013

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

ηδάζθσλ: εµήηξεο Εετλαιηπνύξ

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) =

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

Γ ΣΑΞΖ ΔΝΗΑΗΟΤ ΛΤΚΔΗΟΤ ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΘΔΣΗΚΩΝ ΚΑΗ ΟΗΚΟΝΟΜΗΚΩΝ ΠΟΤΓΩΝ ΤΝΑΡΣΖΔΗ ΟΡΗΑ ΤΝΔΥΔΗΑ (έως Θ.Bolzano) ΘΔΜΑ Α

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα.

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

Ηλεκηπονικά Απσεία και Διεπαθέρ

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

Κόληξα πιαθέ ζαιάζζεο κε δηαζηάζεηο 40Υ40 εθ. Καξθηά 3 θηιά πεξίπνπ κε κήθνο ηξηπιάζην από ην πάρνο ηνπ μύινπ θπξί κεγάιν θαη ππνκνλή

1 Είζοδορ ζηο Σύζηημα ΣΔΕΔ ή BPMS

Κεθάιαην 20. Ελαχιστοποίηση του κόστους

ΔΝΓΔΙΚΣΙΚΔ ΛΤΔΙ ΣΑ ΜΑΘΗΜΑΣΙΚΑ ΠΡΟΑΝΑΣΟΛΙΜΟΤ 2017

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

Κεθάλαιο 7. Πξνζθνξά ηνπ θιάδνπ Μ. ΨΥΛΛΑΚΗ

ΕΞΙΣΩΣΕΙΣ. (iv) (ii) (ii) (ii) 5. Γηα ηηο δηάθνξεο ηηκέο ηνπ ι λα ιπζνύλ νη εμηζώζεηο : x 6 3 9x

Τ ξ ε ύ ο ξ π ς ξ σ ξ ο ί ξ σ _ Ι ε ο α μ ε ι κ ό π

ΓΙΑΙΡΔΣΟΣΗΣΑ. Οπιζμόρ 1: Έζηω d,n. Λέκε όηη ν d δηαηξεί ηνλ n (ζπκβνιηζκόο: dn) αλ. ππάξρεη c ηέηνην ώζηε n. Θεώπημα 2: Γηα d,n,m,α,b ηζρύνπλ:

ΗΥ-150 Πξνγξακκατησκόο Ταμηλόκεσε θαη Αλαδήτεσε

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

ΠΔΡΗΓΡΑΦΖ ΛΔΗΣΟΤΡΓΗΚΟΣΖΣΑ ΥΔΓΗΟΤ ΑΡΗΘΜ. 1

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ

Έκδοζη /10/2014. Νέα λειηοσργικόηηηα - Βεληιώζεις

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

x x x x tan(2 x) x 2 2x x 1

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP

ΥΛΙΚΑ ΠΑΡΟΝ ΚΑΙ ΜΕΛΛΟΝ ΠΑΝΕΠΙΣΗΜΙΟ ΚΡΗΣΗ ΣΜΗΜΑ ΕΠΙΣΗΜΗ ΚΑΙ ΣΕΧΝΟΛΟΓΙΑ ΤΛΙΚΩΝ

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

Ππογπαμμαηιζμόρ Ι (ΗΥ120)

Βιομησανικόρ ζσεδιαζμόρ πποϊόνηων από ανακςκλωμένερ ζςζκεςαζίερ

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

α) ηε κεηαηόπηζε x όηαλ ην ζώκα έρεη κέγηζην ξπζκό κεηαβνιήο ζέζεο δ) ην κέγηζην ξπζκό κεηαβνιήο ηεο ηαρύηεηαο

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ

Επωηήζειρ Σωζηού Λάθοςρ ηων πανελλαδικών εξεηάζεων Σςναπηήζειρ

ΣΥΣΤΗΜΑΤΑ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 1. Να ιπζνύλ ηα ζπζηήκαηα. 1 0,3x 0,1y x 3 3x 4y 2 4x 2y ( x 1) 6( y 1) (i) (ii)

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

Η επιζκόπηζη ηης έμμιζθης ενηολής ζηην Αλλοδαπή. Καηεξίλα Γαιαλνπνύινπ, Intellectual Property Manager, Microsoft Ειιάο Α.Ε.

γηα ηνλ Άξε Κσλζηαληηλίδε

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

Δξγαιεία Καηαζθεπέο 1 Σάμε Δ Δ.Κ.Φ.Δ. ΥΑΝΗΩΝ ΠΡΩΣΟΒΑΘΜΗΑ ΔΚΠΑΗΓΔΤΖ. ΔΝΟΣΖΣΑ 2 ε : ΤΛΗΚΑ ΩΜΑΣΑ ΔΡΓΑΛΔΗΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Ογθνκεηξηθό δνρείν

Κάλνληαο θιηθ κε ην πνληίθη ζηνλ ινγαξηαζκό πνπ ζέινπκε θιείλεη ην παξάζπξν πνπ κόιηο είρε αλνίμεη. Παηώληαο Παξνπζίαζε (βειάθη Νν 3) παξνπζηάδνληαη

Σήκαηα Β Α Γ Γ Δ Λ Η Σ Ο Ι Κ Ο Ν Ο Μ Ο Υ Γ Ι Α Λ Δ Ξ Η - ( 2 ) ΕΙΣΑΓΨΓΗ ΣΤΙΣ ΤΗΛΕΠΙΚΟΙΝΨΝΙΕΣ

Transcript:

ΑΡΙΣΟΣΕΛΕΙΟ ΠΑΝΕΠΙΣΗΜΙΟ ΘΕΑΛΟΝΙΚΗ ΑΝΟΙΚΣΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΣΑ Σχεδίαση Γλωσσών & Μεταγλωττιστζς Ενότητα 8: Πίνακεσ LR Ανάλυςησ Επ. Καθ. Π. Κατςαρόσ Τμήμα Πληροφορικήσ

Άδειεσ Χρήςησ Το παρόν εκπαιδευτικό υλικό υπόκειται ςε άδειεσ χρήςησ Creative Commons. Για εκπαιδευτικό υλικό, όπωσ εικόνεσ, που υπόκειται ςε άλλου τφπου άδεια χρήςησ, η άδεια χρήςησ αναφζρεται ρητώσ.

Χρηματοδότηςη Το παρόν εκπαιδευτικό υλικό ζχει αναπτυχθεί ςτα πλαίςια του εκπαιδευτικοφ ζργου του διδάςκοντα. Το ζργο «Ανοικτά Ακαδημαϊκά Μαθήματα ςτο Αριςτοτζλειο Πανεπιςτήμιο Θεςςαλονίκησ» ζχει χρηματοδοτήςει μόνο τη αναδιαμόρφωςη του εκπαιδευτικοφ υλικοφ. Το ζργο υλοποιείται ςτο πλαίςιο του Επιχειρηςιακοφ Προγράμματοσ «Εκπαίδευςη και Δια Βίου Μάθηςη» και ςυγχρηματοδοτείται από την Ευρωπαϊκή Ζνωςη (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικοφσ πόρουσ.

Αναλσηής LR ώθηζης - απλοποίηζης Ι Σσκβοιοζεηρά εηζόδοσ θεθαιή αλάγλωζες Πίλαθας ελεργεηώλ Πίλαθας κεηαβάζεωλ Αιγόρηζκος αλάισζες LR 9 Y ζηοίβα (ζύκβοια δωηηθού προζέκαηος θαη θαηαζηάζεης) 4 4

Αναλσηής LR ώθηζης - απλοποίηζης ΙI push($); // $ ηο ζύκβοιο ηέιοσς ζσκβοιοζεηράς push(s 0 ); // s 0 ε αρτηθή θαηάζηαζε lookahead = get_next_token(); repeat forever s = top_of_stack(); // ACTION είλαη ο πίλαθας ελεργεηώλ if ( ACTION[s,lookahead] = = απλοποίηση ) then pop 2* ζύκβοια; //αθαηρούληαη ηα ζύκβοια & οη θαηαζηάζεης s = top_of_stack(); push( ); push(goto[s, ]); // GOTO είλαη ο πίλαθας κεηαβάζεωλ else if ( ACTION[s,lookahead] = = ώθηση s i ) then push(lookahead); push(s i ); lookahead = get_next_token(); else if ( ACTION[s,lookahead] = = αποδοχή and lookahead = = $ ) then return (επηηστής αλαγλώρηζε); else error(); 5

Αναλσηής LR ώθηζης - απλοποίηζης ΙIΙ Μηα γραμμαηική είναι LR(k) αλ, δνζείζεο κηαο δεμηάο παξαγσγήο S 0 1 2 n-1 n πξόηαζε κπνξνύκε: 1. Να αλαγλσξίζνπκε κηα ιαβή απινπνίεζεο γηα θάζε δεμηά πξνηαζηαθή κνξθή i, θαη 2. Να θαζνξίζνπκε ηνλ θαλόλα ηεο απινπνίεζεο κε ηελ αλάγλσζε ηεο i από αξηζηεξά πξνο ηα δεμηά, πξνρσξώληαο ην πνιύ k ζύκβνια πην δεμηά από ην ηέινο ηεο ιαβήο απινπνίεζεο ηεο i. 6

Αναλσηής LR ώθηζης - απλοποίηζης ΙV Αλ κία γξακκαηηθή είλαη LR(?) ππάξρεη κία θαη κόλν κία δεμηά παξαγσγή ηεο θάζε πξόηαζεο ην πάλσ κέξνο ηεο ζηνίβαο είηε ππάξρνπλ όιεο νη ελεξγέο ιαβέο απινπνίεζεο πνπ πεξηιακβάλνπλ ηελ θνξπθή ηεο ζηνίβαο, είηε σζνύληαη ζύκβνια κέρξη λα απνηειεί ε θνξπθή ην δεμί άθξν κηαο ιαβήο απινπνίεζεο Η γιώζζα ησλ ιαβώλ απινπνίεζεο είλαη θαλνληθή θαη άξα κπνξεί λα θαηαζθεπαζζεί έλα πξνζδηνξηζηηθό πεπεξαζκέλν απηόκαην πνπ λα εθηειεί αλαγλώξηζε ιαβώλ απινπνίεζεο νη πίλαθεο ελεξγεηώλ θαη κεηάβαζεο νπζηαζηηθά εθθξάδνπλ ην ζπγθεθξηκέλν απηόκαην Κάζε λέα θαηάζηαζε ηνπ απηόκαηνπ ηελ εηζάγνπκε ζηε ζηνίβα Οη ηειηθέο θαηαζηάζεηο ηνπ απηόκαηνπ αληηζηνηρνύλ ζε ελέξγεηεο απινπνίεζεο λέα θαηάζηαζε είλαη ε GOTO[αξηζηεξό ζύκβνιν θαλόλα, θαηάζηαζε θνξπθήο] 7

Αναλσηής LR ώθηζης - απλοποίηζης V Πσο θηηάρλνπκε ηνπο πίλαθεο ελεξγεηώλ & κεηαβάζεσλ; Σηνίβα πεγαίος θώδηθας Λεμηθόο αλαιπηήο Αλαιπηήο Ελδηάκεζε Αλαπαράζηαζε γρακκαηηθή Γελλήηξηα αλαιπηή (yacc) Πίλαθεο Ελεξγεηώλ & Μεηαβάζεωλ 8

Αναλσηής LR ώθηζης - απλοποίηζης VΙ Πσο θηηάρλνπκε ηνπο πίλαθεο ελεξγεηώλ & κεηαβάζεσλ (ρσξίο ην yacc); θαηαζθεπάδνπκε από ηε γξακκαηηθή ην απηόκαην αλαγλώξηζεο ιαβώλ απινπνίεζεο νξίδνπκε ηνπο πίλαθεο ελεξγεηώλ & κεηαβάζεσλ αλ ε θαηαζθεπή ηνπ απηνκάηνπ πεηύρεη ηόηε ε γξακκαηηθή είλαη γξακκαηηθή LR(?) αιιηώο είλαη πηζαλό λα πξνθύςνπλ ζπγθξνύζεηο ώζεζεο απινπνίεζεο ή ζπγθξνύζεηο απινπνίεζεο απινπνίεζεο ηόηε ή ζα πξέπεη λα εθαξκνζζεί κία άιιε θαηαζθεπή LR(?) ή λα θαηαζθεπάζνπκε ηνλ αλαιπηή έηζη ώζηε ζε κία πεξίπησζε ζύγθξνπζεο λα επηιέγεη θάζε θνξά κία ζπγθεθξηκέλε ελέξγεηα οι αναλσηές ηοσ byacc όηαν έτοσμε ζύγκροσζη ώθηζης απλοποίηζης εκηελούν κάθε θορά ηην ώθηζη 9

Αναλσηής LR ώθηζης - απλοποίηζης VΙΙ Πσο θηηάρλνπκε ην απηόκαην αλαγλώξηζεο ιαβώλ απινπνίεζεο (ρσξίο ην yacc); ρξεζηκνπνηνύκε ζηνηρεία LR(k) γηα λα θσδηθνπνηήζνπκε ην ζύλνιν ησλ θαλόλσλ πνπ κπνξεί ην δεμί ηνπο κέξνο λα απνηειέζεη ιαβή απινπνίεζεο ζε κία δεδνκέλε θαηάζηαζε ππνινγίδνπκε γηα θάζε θαηάζηαζε ηα goto( s, ) θαη closure( s ), δειαδή ην θιείζηκν (βι. ζπλέρεηα) θαηαγξάθνπκε ηηο θαηαζηάζεηο θαη ηηο κεηαβάζεηο ηνπ απηόκαηνπ ζπκπιεξώλνπκε ηνπο πίλαθεο ελεξγεηώλ & κεηαβάζεσλ 10

Αναλσηής LR ώθηζης - απλοποίηζης VΙΙΙ ηνηρείν LR(k) είλαη έλα δεύγνο [A, B], όπνπ A είλαη κία παξαγσγή κε κία θάπνπ ζην δεμί κέξνο B ζύκβνια εηζόδνπ κε κήθνο k (ηεξκαηηθά ή $) Παξαδείγκαηα: [, a] [, a] [, a] [, a] Η δείρλεη ηελ ηξέρνπζα ζέζε πνπ κπνξνύκε λα ζεσξήζνπκε όηη αλαπαξηζηά ε θνξπθή ηεο ζηνίβαο ζηνηρεία LR(0) [ ] (δελ ππάξρνπλ ζύκβνια εηζόδνπ) ζηνηρεία LR(1) [, a ] (έλα κόλν ζύκβνιν εηζόδνπ) ζηνηρεία LR(2) [, a b ] (δύν ζύκβνια εηζόδνπ)... 11

Πίνακες ανάλσζης LR(1) I Η παξαγσγή, κε ζύκβνιν εηζόδνπ a, παξάγεη 4 ζηνηρεία LR(1) [, a], [, a], [, a], & [, a] Σν ζύλνιν ησλ LR(1) ζηνηρείσλ κηαο γξακκαηηθήο είλαη πεπεξαζκέλν. Πνηα είλαη ε ζεκαζία ησλ ζπκβόισλ εηζόδνπ ζηα ζηνηρεία; ηα θαηαγξάθνπκε έηζη ώζηε λα νδεγνύκαζηε ζηε ζσζηή απινπνίεζε αλ ε βξίζθεηαη ζε ελδηάκεζε ζέζε ζε έλα κόλν ζηνηρείν δελ παίδεη θάπνην ηδηαίηεξν ξόιν π.ρ. ζην [, a], ην ζύκβνιν εηζόδνπ δελ έρεη ηδηαίηεξε ζεκαζία ζην [, a], ην ζύκβνιν a νδεγεί ζηελ απινπνίεζε ζην ζύλνιν { [, a],[, b] } ζπκβόιν εηζόδνπ = a απλοποίηση ζε ; ζύκβνιν εηζόδνπ FIRST( ) ώθηση ζε κία LR(1) γξακκαηηθή έλα ζύκβνιν εηζόδνπ είλαη αξθεηό γηα λα θαζνξίζεη ηελ επόκελε ελέξγεηα 12

Πίνακες ανάλσζης LR(1) II Οη θαηαζηάζεηο ηνπ πξνζδηνξηζηηθνύ απηόκαηνπ αλαγλώξηζεο ιαβώλ απινπνίεζεο νξίδνληαη σο ζύλνια ζηνηρείσλ, I 0, I 1,..., I n a. Δηζάγνπκε έλα λέν ζύκβνιν S θαη κία παξαγσγή S S όπνπ S ε αξρή ηεο γξακκαηηθήο b. Η αξρηθή θαηάζηαζε, I 0 πεξηιακβάλεη ηα ζηνηρεία [S S, $] θαη όια ηα ηζνδύλακα πνπ δίλνληαη σο closure( I 0 ) c. Γηα θάζε ζύλνιν I k θαη θάζε ζύκβνιν, βξίζθνπκε ην goto(i k, ) αλ ην ζύλνιν ηεο goto(i k, ) δελ έρεη ήδε δεκηνπξγεζεί ηόηε ην δεκηνπξγνύκε θαηαγξάθνπκε όιεο ηηο κεηαβάζεηο goto( ) 2 πκπιεξώλνπκε ηνπο πίλαθεο ελεξγεηώλ θαη κεηαβάζεσλ ηεο αλάιπζεο 13

Πίνακες ανάλσζης LR(1) IIΙ ΤΠΟΛΟΓΙΜΟ closure(i) Σν closure(i) πξνζζέηεη ζην ζύλνιν I όια ηα ζηνηρεία πνπ πξνθύπηνπλ από ηα ήδε ππάξρνληα ζην I θάζε ζηνηρείν [, a] δεκηνπξγεί επίζεο όια ηα [, x] γηα θάζε παξαγσγή κε ζηα αξηζηεξά θαη γηα όια ηα x FIRST( a) εθόζνλ ζπκπεξηιεθζνύλ όια ηα ζηνηρεία ηεο παξαγσγήο πεξηιακβάλνληαη θαη όζα πξνθύπηνπλ από απηά εθαξκόδνληαο ηελ ίδηα πξάμε Closure( I ) while ( το σύνολο I μεγαλώνει ) for κάθε [, a] I for κάθε παραγωγή P for κάθε τερματικό b FIRST( a) if [, b] I then προσέθεσε το [, b] στο I 14

Πίνακες ανάλσζης LR(1) IV ΤΠΟΛΟΓΙΜΟ goto(i,x) Τπνινγίδεη ηε λέα θαηάζηαζε πνπ ν αλαιπηήο πξνζεγγίδεη αλ απηόο βξίζθεηαη ζηελ θαηάζηαζε I θαη αλαγλσξίδεη ην ηεξκαηηθό x goto( { [, a] }, ) παξάγεη θαηάζηαζε πνπ πεξηιακβάλεη ην [, a] αλ δελ ππάξρεη δεκηνπξγείηαη θαη πεξηιακβάλεηαη ζε απηή θαη ην closure( [, a] ) Goto( I, x ) new = Ø for κάθε [ x, a] I new = new [ x, a] return closure(new) 15

Πίνακες ανάλσζης LR(1) V ΑΛΓΟΡΙΘΜΟ ΚΑΣΑΚΔΤΗ ΑΤΣΌΜΑΣΟΤ Ξεθηλάκε από ην I 0 = closure( [S S, $] ) Γεκηνπξγνύκε ζπλέρεηα λέεο θαηαζηάζεηο κέρξη ηε ζηηγκή πνπ δελ ζα κπνξεί λα δεκηνπξγεζνύλ άιιεο I 0 = closure( [S S, $] ) C = { I 0 } while ( προστίθενται στο C νέα σύνολα στοιχείων ) for κάθε I i C και κάθε x ( T NT ) I new = goto(i i, x) if I new C then C = C I new κατέγραψε τη μετάβαση I i I new με αναγνώριση του x 16

Πίνακες ανάλσζης LR(1) VΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΣΑΚΔΤΗ ΠΙΝΑΚΩΝ LR(1) Closure( I ) while ( το σύνολο I μεγαλώνει ) for κάθε [, a] I for κάθε παραγωγή P for κάθε τερματικό b FIRST( a) if [, b] I then προσέθεσε το [, b] στο I I 0 = closure( [S S, $] ) C = { I 0 } Goto( I, x ) new = Ø for κάθε [ x, a] I new = new [ x, a] return closure(new) while ( προστίθενται στο C νέα σύνολα στοιχείων ) for κάθε I i C και κάθε x ( T NT ) I new = goto(i i, x) if I new C then C = C I new κατέγραψε τη μετάβαση I i I new με αναγνώριση του x 17

Παράδειγμα ανάλσζης LR(1) Ι S έθθραζε έθθραζε όρος - έθθραζε έθθραζε όρος όρος παράγοληας * όρος όρος παράγοληας παράγοληας id Σύκβοιο FIRST S { id } έκυραση { id} όρος { id } παράγοντας { id} - { - } * { * } id { id} 18

Παράδειγμα ανάλσζης LR(1) ΙΙ I 1 = {[S έκυραση, \0]} έκυραση I 0 = {[S έκυραση,\0], [έκυραση όρος - έκυραση, \0], [έκυραση όρος, \0], [όρος παράγοντας * όρος, {\0,-}], [όρος παράγοντας, {\0,-}], [παράγοντας id,{\0,-,*}]} I 4 = { [παράγοντας id, {\0,-,*}] } id παράγοντας όρος I 2 = { [έκυραση όρος - έκυραση, \0], [έκυραση όρος, \0] } id παράγοντας I 6 ={[όρος παράγοντας * όρος, {\0,-}], [όρος παράγοντας * όρος, {\0,-}], [όρος παράγοντας, {\0,-}], [παράγοντας id, {\0, -, *}]} I 3 = {[όρος παράγοντας * όρος, {\0,-}], [όρος παράγοντας, {\0,-}]} * - όρος παράγοντας id I 5 = {[έκυραση όρος - έκυραση, \0], [έκυραση όρος - έκυραση, \0], [έκυραση όρος, \0], [όρος παράγοντας * όρος, {\0,-}], [όρος παράγοντας, {\0,-}], [παραγοντας id, {\0,-,*}] } έκυραση I 8 = { [όρος παράγοντας * όρος, {\0,-}] } I 7 = { [έκυραση όρος - έκυραση, \0] } 19

Παράδειγμα ανάλσζης LR(1) ΙΙΙ ΓΗΜΙΟΤΡΓΙΑ ΠΙΝΑΚΩΝ for θάζε ζύλοιο ζηοητείωλ I x C for θάζε ζηνηρείν I x if ζηοητείο είλαη [ a,b] θαη a T θαη goto(i x,a) = I k, then ACTION[x,a] ώζεζε k else if ζηοητείο είλαη [S S,$] then ACTION[x,$] απνδνρή else if ζηοητείο είλαη [,a] then ACTION[x,a] απινπνίεζε for θάζε n NT if goto(i x,n) == I k then GOTO[x,n] k 20

Παράδειγμα ανάλσζης LR(1) ΙV ΔΝΔΡΓΔΙΔΣ ΜΔΤΑΒΑΣΔΙΣ id - * $ έκυραση όρος παράγο ντας 0 ωζ 4 1 2 3 1 απνδ 2 σζ 5 απ 3 3 απ 5 σζ 6 απ 5 4 απ 6 απ 6 απ 6 5 σζ 4 7 2 3 6 σζ 4 8 3 7 απ 2 8 απ 4 απ 4 21

Σσγκρούζεις ενεργειών Ση γίλεηαη αλ ε θαηάζηαζε s πεξηέρεη [ a, b] θαη [, a] ; Σν πξώην ζηνηρείν παξάγεη ώζεζε θαη ην δεύηεξν απινπνίεζε Γελ κπνξνύκε ζην ACTION[s,a] λα ζπκπιεξώζνπκε δύν ελέξγεηεο Σύγκροσζη ώθηζης απλοποίηζης (shift reduce conflict) Μπνξνύκε ή λα αιιάμνπκε ηε γξακκαηηθή ή απζαίξεηα λα επηιέμνπκε ηελ εθηέιεζε ώζεζεο, θάηη πνπ έρεη απνδεηρζεί όηη ζπλήζσο απνδίδεη ηε ζσζηή ζεκαζία (π.ρ. Πξόβιεκα κεηέσξνπ else) ή λα επηιέμνπκε θάπνηα άιιε αλάιπζε LR Ση γίλεηαη όηαλ ε θαηάζηαζε s πεξηέρεη [, a] θαη [, a] ; Κάζε ζηνηρείν παξάγεη απινπνίεζε, αιιά κε δηαθνξεηηθό θαλόλα Γελ κπνξνύκε ζην ACTION[s,a] λα ζπκπιεξώζνπκε δύν ελέξγεηεο Σύγκροσζη απλοποίηζης απλοποίηζης (reduce reduce conflict) Έλδεημε ιάζνπο ζηε γξακκαηηθή θαη ζηηο δύν πεξηπηώζεηο ιέκε όηη ε γξακκαηηθή δελ είλαη LR(1) 22

Παραλλαγές ανάλσζης LR: LR(0) θιείζηκο ζσλόιοσ ζηοητείωλ LR(0): Closure( I ) while ( το σύνολο I μεγαλώνει ) for κάθε στοιχείο [ ] I for κάθε παραγωγή P if [ ] I then προσέθεσε το [ ] στο I κεηαβάζεης ζσλόιωλ ζηοητείωλ LR(0): Goto( I, x ) new = Ø for κάθε [ x ] I new = new [ x ] return closure(new) Βαζηθά είλαη οη ίδηοη αιγόρηζκοη όπως θαη θαηαζθεσή ζσλόιωλ ζηοητείωλ LR(0): γηα ηελ αλάισζε LR(1) I 0 = closure( [S S ] ) Η κόλε δηαθορά είλαη όηη ζηα ζηοητεία C = { I 0 } LR(0) δελ σπάρτεη ζύκβοιο εηζόδοσ θαη γη ασηό δελ παράγοληαη ποιιά ζηοητεία ζε while ( προστίθενται στο C νέα σύνολα στοιχείων) θάζε ζύλοιο for κάθε I i C και κάθε x ( T NT ) Η αλάισζε LR(0) παράγεη ιηγόηερες I new = goto(i i, x) θαηαζηάζεης if I new C then Γελ κπορεί λα αλαγλωρίζεη όιες ηης C = C I new γρακκαηηθές ποσ αλαγλωρίδεη ε LR(1) κατέγραψε τη μετάβαση I i I new με Δίλαη πηο πηζαλό λα οδεγήζεη ζε αναγνώριση του x ζσγθρούζεης αλάισζες 23

Παραλλαγές ανάλσζης LR: SLR(1) Ο αιγόξηζκνο SLR(1) γηα λα θαζνξίζεη πόηε ζα γίλεη απινπνίεζε ρξεζηκνπνηεί θαη ηα ζύλνια FOLLOW Οη αλαιπηέο SLR(1) έρνπλ ιηγόηεξεο θαηαζηάζεηο από όηη νη LR(1) for θάζε ζύλνιν ζηνηρείωλ I x C for θάζε ζηνηρείν I x if ζηοητείο είλαη [ a ] θαη a T θαη goto(i x,a) = I k, then ACTION[x,a] ώζεζε k else if ζηοητείο είλαη [S S ] then ACTION[x,\0] απνδνρή else if ζηοητείο είλαη [ ] then for θάζε a FOLLOW( ) then ACTION[x,a] απινπνίεζε for each n NT if goto(i x,n) = I k then GOTO[x,n] k 24

Παραλλαγές ανάλσζης LR: LALR(1) Βαζηθή ηδέα: ζπλέλσζε θαηαζηάζεσλ LR(1) θξαηάκε ηνλ ππξήλα LR(0) ησλ ζηνηρείσλ LR(1) (αγλννύκε ηα ζύκβνια εηζόδνπ) αλ δύν ζύλνια LR(1) έρνπλ ηνλ ίδην ππξήλα, ηόηε ηα ζπλελώλνπκε θαη ελεκεξώλνπκε ηνπο πίλαθεο ACTION θαη GOTO Οη αλαιπηέο LALR(1) κπνξνύλ λα θηηαρηνύλ κε δύν ηξόπνπο 1. Καηαζθεπή ησλ ζπλόισλ ζηνηρείσλ LR(1) θαη ζπλέλσζε 2. Αγλννύκε ηα ζηνηρεία κε ηειεία ζηελ αξρή ηνπ δεμηνύ κέξνπο θαη θαηαζθεπάδνπκε ππξήλεο ζπλόισλ ζηνηρείσλ LR(0). ηε ζπλέρεηα ρξεζηκνπνηνύκε έλαλ αιγόξηζκν πξνώζεζεο ζπκβόισλ εηζόδνπ γηα λα ππνινγίζνπκε ηα ζύκβνια εηζόδνπ. Η δεύηεξε πξνζέγγηζε είλαη πην απνδνηηθή επεηδή απνθεύγεη ηε δεκηνπξγία κεγάισλ ελδηάκεζσλ LR(1) πηλάθσλ 25

Παραλλαγές ανάλσζης LR: LALR(1) Έλαο αλαιπηήο LALR(1) γηα κηα γξακκαηηθή G έρεη ηνλ ίδην αξηζκό θαηαζηάζεσλ κε ηνλ αληίζηνηρν αλαιπηή SLR(1) Αλ έλαο αλαιπηήο LR(1) γηα κηα γξακκαηηθή G δελ παξνπζηάδεη ζπγθξνύζεηο ώζεζεο - απινπνίεζεο, ηόηε δελ ζα έρεη ζπγθξνύζεηο ώζεζεο απινπνίεζεο θαη ν αλαιπηήο LALR(1) Έλαο αλαιπηήο LALR(1) κπνξεί λα εκθαλίδεη ζύγθξνπζε απινπνίεζεο - απινπνίεζεο ρσξίο απηό λα ζπκβαίλεη θαη ζηνλ αληίζηνηρν LR(1) Οη αλαιπηέο LALR(1) είλαη πην γεληθνί από ηνπο SLR(1) θαη ζπγρξόλσο έρνπλ ην ίδην κηθξό ρώξν θαηαζηάζεσλ Αλάιπζε LALR(1) παξάγνπλ νη γελλήηξηεο yacc θαη byacc 26

Γλώζζες τωρίς ζσμθραζόμενα Ι Γιώζζεο ρωξίο ζπκθξαδόκελα Πξνζδηνξηζηηθέο γιώζζεο (LR(k)) LR(k) LR(1) Γιώζζεο LL(k) Γιώζζεο απιήο πξνήγεζεο Η ηεραρτία γιωζζώλ τωρίς ζσκθραδόκελα Γιώζζεο LL(1) Γιώζζεο πξνηεξαηόηεηαο ηειεζηώλ 27

Γλώζζες τωρίς ζσμθραζόμενα ΙΙ Γιώζζεο ρωξίο ζπκθξαδόκελα Γιώζζεο ρωξίο αζάθεηεο Πξνηεξαηόηεηαο ηειεζηώλ LR(k) LR(1) LALR(1) SLR(1) LR(0) LL(k) LL(1) Ιεραρτία γιωζζώλ τωρίς ζσκθραδόκελα Οη γιώζζεο πξνηεξαηόηεηαο ηειεζηώλ πεξηιακβάλνπλ θαη θάπνηεο γιώζζεο κε αζάθεηεο LL(1) είλαη ππνζύλνιν ηωλ γξακκαηηθώλ SLR(1) 28

ΑΡΙΣΟΣΕΛΕΙΟ ΠΑΝΕΠΙΣΗΜΙΟ ΘΕΑΛΟΝΙΚΗ ΑΝΟΙΚΣΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΣΑ Τζλος ενότητας Επεξεργαςία: Εμμανουζλα Στάχτιαρη Θεςςαλονίκη, 21/07/2014