Μεταγλωττιστές Ενότητα 4: Τυπικές γλώσσες (Μέρος 3 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα του ΤΕΙ Δυτικής Μακεδονίας και της Ανώτατης Εκκλησιαστικής Ακαδημίας Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Τυπικές γλώσσες (Μέρος 3 ο )
Σκοποί ενότητας Σκοπός της ενότητας είναι η περιγραφή των τυπικών γλωσσών. 5
Περιεχόμενα ενότητας (1/2) Πεπερασμένα αυτόματα. Ντετερμινιστικά πεπερασμένα αυτόματα ΝΠΑ. Μη ντετερμινιστικά πεπερασμένα αυτόματα ΜΠΑ. ΜΠΑ με μηδενικές μεταβάσεις - ΜΠΑ-ε. Τρόποι αναπαράστασης πεπερασμένων αυτόματων. 6
Περιεχόμενα ενότητας (2/2) Γλώσσες ντετερμινιστικών πεπερασμένων αυτόματων. Παραδείγματα. Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ. 7
Πεπερασμένα αυτόματα (1/2) Πεπερασμένα Αυτόματα. Finite automata. Αφηρημένες μηχανές. Μπορούν να χρησιμοποιηθούν ως αναγνωριστές για κανονικές γλώσσες. 8
Πεπερασμένα αυτόματα (2/2) Είδη πεπερασμένων αυτομάτων. Τα ντετερμινιστικά πεπερασμένα αυτόματα (ΝΠΑ). Τα μη ντετερμινιστικά πεπερασμένα αυτόματα (ΜΠΑ). Τα μη ντετερμινιστικά πεπερασμένα αυτόματα με μηδενικές μεταβάσεις (ΜΠΑ-ε). Τα τρία είδη αυτομάτων είναι ισοδύναμα μεταξύ τους. 9
Ντετερμινιστικά πεπερασμένα αυτόματα - ΝΠΑ (1/5) Ένα ντετερµινιστικό πεπερασµένο αυτόµατο είναι µία διατεταγµένη πεντάδα M=(A,Q,δ,s,F) όπου: Α: Το αλφάβητο του αυτοµάτου. Q: Ένα µη κενό πεπερασµένο σύνολο καταστάσεων. δ= Q x A -> Q: Η συνάρτηση µετάβασης. s є Q: Η αρχική κατάσταση. F Q: Οι τελικές καταστάσεις. 10
Ντετερμινιστικά πεπερασμένα αυτόματα - ΝΠΑ (2/5) Αρχικά το αυτόµατο βρίσκεται στην κατάσταση q o. Από τη συµβολοσειρά εισόδου. Διαβάζεται ένα σύµβολο κάθε φορά. Αν το αυτόµατο βρίσκεται στην κατάσταση q και διαβαστεί το σύµβολο α. Το αυτόµατο µεταβαίνει στην κατάσταση δ(q,α). 11
Ντετερμινιστικά πεπερασμένα αυτόματα - ΝΠΑ (3/5) Η διαδικασία συνεχίζεται µέχρι να εξαντληθεί η συμβολοσειρά εισόδου. Αν η κατάσταση στην οποία έχει µεταβεί το αυτόµατο είναι µία από τις καταστάσεις του συνόλου F: Η συµβολοσειρά έχει αναγνωριστεί επιτυχώς. Αλλιώς την απορρίπτει. 12
Ντετερμινιστικά πεπερασμένα αυτόματα - ΝΠΑ (4/5) :Q x A+ -> Qx A*. Παράγει άμεσα δυαδική σχέση μεταξύ δύο συνολικών καταστάσεων q0 και q1 του Μ. Εάν και μόνο αν η μηχανή μπορεί να περάσει από την q0 κατάσταση στην q1 με μόνο μια κίνηση. 13
Ντετερμινιστικά πεπερασμένα αυτόματα - ΝΠΑ (5/5) :Q x A+ -> Qx A*. Παράγει δυαδική σχέση μεταξύ δύο συνολικών καταστάσεων q0, qn του Μ. Εάν και μόνο αν η μηχανή μπορεί να περάσει από την q0 κατάσταση στην qn. Μετά από κάποιο αριθμό κινήσεων. 14
Μη ντετερμινιστικά πεπερασμένα αυτόματα - ΜΠΑ (1/2) Ορίζεται όπως ένα μη ντετερμινιστικό αυτόματο. Διαφορά. Η συνάρτηση μετάβασης δ δεν επιστρέφει μία μοναδική κατάσταση. δ: Q x A -> P(Q). Όπου P(Q) το σύνολο όλων των υποσυνόλων του Q. 15
Μη ντετερμινιστικά πεπερασμένα Σε ένα ΜΠΑ. αυτόματα - ΜΠΑ (2/2) Υπάρχουν πολλά διαφορετικά μονοπάτια εκτέλεσης για την ίδια συμβολοσειρά εισόδου. 16
ΜΠΑ με μηδενικές μεταβάσεις - ΜΠΑ-ε (1/2) Ορίζεται όπως ένα μη ντετερμινιστικό αυτόματο. Διαφορά. Επιτρέπονται και «αυθόρμητες» μεταβάσεις. Χωρίς να διαβάζονται χαρακτήρες από τη συμβολοσειρά εισόδου. Η συνάρτηση μετάβασης δ δεν επιστρέφει μία μοναδική κατάσταση. 17
ΜΠΑ με μηδενικές μεταβάσεις Διαφορά (Συνέχεια). - ΜΠΑ-ε (2/2) δ: Q x {A U {ε} } -> P(Q). Όπου P(Q) το σύνολο όλων των υποσυνόλων του Q. Σε ένα ΜΠΑ υπάρχουν πολλά διαφορετικά μονοπάτια εκτέλεσης. Για την ίδια συμβολοσειρά εισόδου. 18
Τρόποι αναπαράστασης πεπερασμένων αυτόματων (1/3) Δύο τρόποι. Πίνακες μετάβασης (Transition tables). Γράφοι μετάβασης (Transition graphs). Παράδειγμα. M=(A,Q,δ,q0,F) Α={0,1} Q={q 0, q 1 } s=q 0 F={q 1 } 19
Τρόποι αναπαράστασης πεπερασμένων αυτόματων (2/3) Πίνακες μετάβασης. Πίνακας 1. Πίνακας μετάβασης. q σ δ(q,σ) q 0 0 q o q 0 1 q 1 q 1 0 q 1 q 1 1 q 0 20
Τρόποι αναπαράστασης πεπερασμένων αυτόματων (3/3) Γράφοι μετάβασης. Σχήμα 1. Γράφοι μετάβασης (πηγή: διδάσκων, 2014). 21
Γλώσσες ντετερμινιστικών πεπερασμένων αυτόματων (1/3) Η γλώσσα του ντετερμινιστικού πεπερασμένου αυτομάτου M ορίζεται ως: L(M) = { w Α δ (q 0, w) F }. Όπου δ η επεκταμένη Συνάρτηση μετάβασης δ : Q Α Q. Λαμβάνει ως είσοδο ολόκληρη τη λέξη εισόδου. Δίνει στην έξοδο την κατάσταση στην οποία θα μεταβεί το αυτόματο όταν διαβάσει τη λέξη. 22
Γλώσσες ντετερμινιστικών πεπερασμένων αυτόματων (2/3) Μία γλώσσα L. Είναι γλώσσα ντετερμινιστικού πεπερασμένου αυτομάτου. Αν υπάρχει ντετερμινιστικό πεπερασμένο αυτόματο M τέτοιο ώστε L = L(M). 23
Γλώσσες ντετερμινιστικών πεπερασμένων αυτόματων (3/3) Σχήμα 2. L(M) = {w A*: w περιέχει περιττό αριθμό από 1}, (πηγή: διδάσκων, 2014). 24
Παραδείγματα (1/4) Πίνακας 2. Παράδειγμα: L(M)={ w A* : w περιέχει 2 συνεχόμενα α }. q σ δ(q,σ) q 0 a q o q 0 b q o q 1 a q 2 q 2 a q 2 q 2 b Q 2 25
Παραδείγματα (2/4) L(M)={ w A* : w περιέχει 2 συνεχόμενα α } ΜΠΑ 26
Παραδείγματα (3/4) Πίνακας 3. Παράδειγμα: L(M) = { w A* : αnbm n, m Z }. q σ δ(q,σ) q 0 a q o q 0 ε q 1 q 1 b q 2 27
Παραδείγματα (4/4) ΜΠΑ-ε L(M) = { w A* : αnbm n, m Z } 28
Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (1/7) Σχήμα 3. Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (1), (πηγή: διδάσκων, 2014). 29
Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (2/7) Σχήμα 4. Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (2), (πηγή: διδάσκων, 2014). 30
Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (3/7) Σχήμα 5. Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (3), (πηγή: διδάσκων, 2014). 31
Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (4/7) Σχήμα 6. Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (4), (πηγή: διδάσκων, 2014). 32
Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (5/7) Σχήμα 7. Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (5), (πηγή: διδάσκων, 2014). 33
Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (6/7) Σχήμα 8. Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (6), (πηγή: διδάσκων, 2014). 34
Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (7/7) ΜΠΑ. ΝΠΑ. Σχήμα 9. Παράδειγμα ισοδυναμίας ΜΠΑ και ΝΠΑ (7), (πηγή: διδάσκων, 2014). 35
Βιβλιογραφία 1. «Μεταγλωττιστές γλωσσών Προγραμματισμού: Θεωρία και Πράξη», Λάζος, Κ.Ε., Κατσαρός και Π.Θ., Καραΐσκος, Ζ.Κ. (2004), Εκδόσεις Θεσσαλονίκη, [ISBN:960-87723-4-6]. 2. «Μεταγλωττιστές», Παπασπύρου, Ν.Σ. και Σκορδαλάκης, Ε.Σ (2002), Εκδόσεις Συμμετρία, 2002, [ISBN: 978-960-266-135-2]. 36
Τέλος Ενότητας 37