Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

1 Κεφάλαιο 2 ο Πεπερασμένα αυτόματα. 2 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα Πεπερασμένα αυτόματα/ ΠΑ (ή μηχανές πεπερασμένων αυτομάτων) αποτελούνται.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "1 Κεφάλαιο 2 ο Πεπερασμένα αυτόματα. 2 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα Πεπερασμένα αυτόματα/ ΠΑ (ή μηχανές πεπερασμένων αυτομάτων) αποτελούνται."— Μεταγράφημα παρουσίασης:

1 1 Κεφάλαιο 2 ο Πεπερασμένα αυτόματα

2 2 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα Πεπερασμένα αυτόματα/ ΠΑ (ή μηχανές πεπερασμένων αυτομάτων) αποτελούνται από –Ένα σύνολο καταστάσεων –Ένα σύνολο μεταβάσεων Η γλώσσα που ορίζει μια κανονική έκφραση (ΚΕ) –Αναγνωρίζεται πάντα από ένα ΠΑ –Μια συμβολοσειρά ελέγχεται από ένα ΠΑ για το αν ταιριάζει σε μια ΚΑ.

3 3 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα Γιατί μετατρέπουμε τις κανονικές εκφράσεις σε αυτόματα; –Επειδή οι μηχανές πεπερασμένων καταστάσεων μας παρέχουν ένα θεωρητικό πλαίσιο και πλήθος αλγορίθμων για την ανάπτυξη αλγορίθμων αναγνώρισης της γλώσσας των εκφράσεων.

4 4 Μεταγλωττιστές Πεπερασμένα αυτόματα κανονική έκφραση για την αναγνώριση ονομάτων: όνομα = {γράμμα}({γράμμα} | {ψηφίο})* αντίστοιχο προσδιοριστικό πεπερασμένο:

5 5 Μεταγλωττιστές Πεπερασμένα αυτόματα Κύκλοι –«αρχή», «όνομα», «τέλος» Καταστάσεις από τις οποίες περνά η διαδικασία αναγνώρισης Τόξα –«γράμμα», «διαχωριστής», «ψηφίο» Μεταβάσεις ανάμεσα στις καταστάσεις μετά την αναγνώριση των χαρακτήρων που αναγράφονται στις επιγραφές τους. «Αρχή» –Αρχική κατάσταση Δεν έχει επιγραφή «Τέλος» –Κατάληξη –Επιτυχή αναγνώριση –Ένα ΠΑ μπορεί να έχει περισσότερες από μια καταλήξεις

6 6 Μεταγλωττιστές Προσδιοριστικό πεπερασμένο αυτόματο Το προηγούμενο διάγραμμα αποτελεί ένα προσδιοριστικό ΠΑ. –Πίνακας μετάβασης (άλλος τρόπος αναπαράστασης αυτομάτου) ένα προσδιοριστικό ΠΑ Μ αποτελείται από: –Ένα αλφάβητο Σ –Ένα σύνολο καταστάσεων S –Μια συνάρτηση μετάβασης Τ: S x Σ → S –Μια αρχική κατάσταση so  S –Ένα σύνολο καταστάσεων κατάληξης A S

7 7 Μεταγλωττιστές Προσδιοριστικό πεπερασμένο αυτόματο ΠΡΟΣΔΙΟΡΙΣΤΙΚΟ ΠΕΠΕΡΑΣΜΕΝΟ ΑΥΤΌΜΑΤΟ

8 8 Μεταγλωττιστές 2.3 Λεξική Ανάλυση και Αυτόματα ΙΙ ΣΥΜΒΑΣΕΙΣ: Δεν απεικονίζουμε τις καταστάσεις λάθους. Χρησιμοποιούμε διπλό κύκλο για τις καταστάσεις κατάληξης. πλήρες προσδιοριστικό αυτόματο για ονόματα:

9 9 Μεταγλωττιστές Προσδιοριστικό πεπερασμένο αυτόματο Στο νέο σχήμα –Ορίσαμε μια νέα κατάσταση «λάθος» –Νέα μετάβαση άλλου χαρακτήρα άλλο= [^{γράμμα}]* Ασάφεια –Στο τρόπο χειρισμού χαρακτήρα μετάβασης Ενσωμάτωση στη συμβολοσειρά Διαχωριστής? –Ενέργεια που ακολουθεί την «κατάληξη» Αναγνωριστικό, Τιμές ιδιοτήτων Επαναφορά στην «αρχή» –Ενέργεια που ακολουθεί το «λάθος» Επανατοποθέτηση στη θέση πριν Επιστροφή αναγνωριστικού λάθους

10 10 Μεταγλωττιστές Παραδείγματα φυσικός = [0-9]+

11 11 Μεταγλωττιστές Παραδείγματα ακέραιος = (+ | -)?{φυσικός}

12 12 Μεταγλωττιστές Παραδείγματα αριθμός = {ακέραιος}(“.” {φυσικός}) ? (E {ακέραιος})?

13 13 Μεταγλωττιστές Προσομοίωση ΠΑ Πίνακας μετάβασης –2 διαστάσεις –Καθορίζει τη συνάρτηση μετάβασης του αυτομάτου Για κάθε κατάσταση Για κάθε χαρακτήρα Δηλώνει τις καταστάσεις κατάληξης

14 14 Μεταγλωττιστές Προσομοίωση ΠΑ γράμμαψηφίοδιαχωριστή ς καταλήξεις «αρχή»«όνομα » ΟΧΙ «όνομα » «τέλος»ΟΧΙ «τέλος» ΝΑΙ

15 15 Μεταγλωττιστές Προσομοίωση ΠΑ ΠΡΟΣΟΜΟΙΩΣΗ ΠΡΟΣΔΙΟΡΙΣΤΙΚΩΝ ΠΕΠΕΡΑΣΜΕΝΩΝ ΑΥΤΌΜΑΤΩΝ Αλγόριθμος προσομοίωσης αυτόματων Είσοδος: Μία συμβολοσειρά εισόδου, ένας πίνακας μετάβασης Τ και ένας πίνακας KA λογικών τιμών, που δηλώνουν τις καταλήξεις του αυτόματου Έξοδος: Το αν η συμβολοσειρά εισόδου ανήκει στη γλώσσα του αυτόματου ή όχι Περιγραφή: κατάσταση:= «αρχή»; ch:= ο επόμενος χαρακτήρας εισόδου; Όσο ((όχι ΚΑ[κατάσταση]) ΚΑΙ (όχι Τ[κατάσταση, ch] κενό)) επανέλαβε νέα_κατάσταση:= Τ[κατάσταση, ch]; ch:= ο επόμενος χαρακτήρας εισόδου; κατάσταση:= νέα_κατάσταση; Τέλος επανάληψης αν (ΚΑ[κατάσταση]) τότε συμβολοσειρά αποδεκτή; διαφορετικά συμβολοσειρά μη αποδεκτή;

16 16 Μεταγλωττιστές Μη προσδιοριστικά ΠΑ Η επόμενη κατάσταση δεν ορίζεται με μοναδικό τρόπο βάση της τρέχουσας κατάστασης και του επόμενου χαρακτήρα εισόδου. Το αλφάβητο Σ επεκτείνεται έτσι ώστε να συμπεριλαμβάνει τη μετάβαση -ε η οποία είναι απαραίτητη για: –Την άμεση αναπαράσταση της κενής συμβολοσειράς –Αναπαράσταση επιλογής μεταξύ εναλλακτικών περιπτώσεων

17 17 Μεταγλωττιστές Μη προσδιοριστικά ΠΑ Επέκταση της συνάρτησης μετάβασης T –για κάθε χαρακτήρα είναι δυνατή η πιθανότητα μετάβασης σε περισσότερες από μία καταστάσεις Λέμε τότε ότι το πεδίο τιμών της συνάρτησης Τ είναι το δυναμοσύνολο του συνόλου καταστάσεων S και αυτό συμβολίζεται με  (S).

18 18 Μεταγλωττιστές Μη προσδιοριστικά ΠΑ

19 19 Μεταγλωττιστές Μη προσδιοριστικά ΠΑ Τα μη προσδιοριστικά αυτόματα χρησιμεύουν, ως ενδιάμεση μορφή αναπαράστασης, για διενέργεια λεξικής ανάλυσης. Κάθε κανονική έκφραση μετατρέπεται, από ένα κατάλληλο αλγόριθμο, σε μη προσδιοριστικό αυτόματο, που αναγνωρίζει τη γλώσσα της έκφρασης. Το αυτόματο με τη σειρά του μετατρέπεται με τη χρήση ενός άλλου αλγορίθμου, σε προσδιοριστικό και ακολουθεί ελαχιστοποίηση του αριθμού των καταστάσεών του.

20 20 Μεταγλωττιστές Μη προσδιοριστικά ΠΑ

21 21 Μεταγλωττιστές Ανάπτυξη Thompson Γίνεται συντακτική ανάλυση της κανονικής έκφρασης. Κατασκευάζονται τα αυτόματα που αντιστοιχούν σε κάθε μία από τις στοιχειώδεις κανονικές εκφράσεις που προκύπτουν.

22 22 Μεταγλωττιστές Ανάπτυξη Thompson Κενή συμβολοσειρά ε

23 23 Μεταγλωττιστές Ανάπτυξη Thompson Αναγνώριση χαρακτήρα πρότυπο α

24 24 Μεταγλωττιστές Ανάπτυξη Thompson Παράθεση 2 σχηματισθέντων αυτομάτων M(r) και Μ(s)

25 25 Μεταγλωττιστές Ανάπτυξη Thompson Διάζευξη 2 σχηματισθέντων αυτομάτων M(r) και Μ(s)

26 26 Μεταγλωττιστές Ανάπτυξη Thompson Επανάληψη r* σχηματισθέντων αυτομάτων M(r)

27 27 Μεταγλωττιστές 2.3 Λεξική Ανάλυση και Αυτόματα ΧΙII ΜΕΤΑΤΡΟΠΗ ΚΑΝΟΝΙΚΩΝ ΕΚΦΡΑΣΕΩΝ ΣΕ ΜΗ ΠΡΟΣΔΙΟΡΙΣΤΙΚΑ ΑΥΤΟΜΑΤΑ (ΑΝΑΠΤΥΞΗ THOMPSON) Γίνεται συντακτική ανάλυση της κανονικής έκφρασης. Κατασκευάζονται τα αυτόματα που αντιστοιχούν σε κάθε μία από τις στοιχειώδεις κανονικές εκφράσεις που προκύπτουν.

28 28 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα ΜΕΤΑΤΡΟΠΗ ΚΑΝΟΝΙΚΩΝ ΕΚΦΡΑΣΕΩΝ ΣΕ ΜΗ ΠΡΟΣΔΙΟΡΙΣΤΙΚΑ ΑΥΤΟΜΑΤΑ (ΠΑΡΑΔΕΙΓΜΑ) όνομα = {γράμμα}({γράμμα} | {ψηφίο})*

29 29 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα ΜΗ ΠΡΟΣΔΙΟΡΙΣΤΙΚΑ ΑΥΤΟΜΑΤΑ όνομα = {γράμμα}({γράμμα} | {ψηφίο})* το δένδρο που προκύπτει από τη συντακτική ανάλυση της έκφρασης είναι το

30 30 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα Γράμμα

31 31 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα Ψηφίο

32 32 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα ({γράμμα}|{ψηφίο})

33 33 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα ({γράμμα}|{ψηφίο})*

34 34 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα ΜΕΤΑΤΡΟΠΗ ΚΑΝΟΝΙΚΩΝ ΕΚΦΡΑΣΕΩΝ ΣΕ ΜΗ ΠΡΟΣΔΙΟΡΙΣΤΙΚΑ ΑΥΤΟΜΑΤΑ (ΣΥΝΕΧΕΙΑ ΠΑΡΑΔΕΙΓΜΑΤΟΣ) το μη προσδιοριστικό αυτόματο, που προκύπτει με ανάπτυξη Thompson είναι το

35 35 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα ΜΕΤΑΤΡΟΠΗ ΜΗ ΠΡΟΣΔΙΟΡΙΣΤΙΚΟΥ ΑΥΤΟΜΑΤΟΥ ΣΕ ΠΡΟΣΔΙΟΡΙΣΤΙΚΟ (ΑΝΑΠΤΥΞΗ ΥΠΟΣΥΝΟΛΩΝ) Οι καταστάσεις του προσδιοριστικού αυτόματου, που προκύπτει ως αποτέλεσμα, είναι υποσύνολα των καταστάσεων του μη προσδιοριστικού αυτόματου. Δύο καταστάσεις «p» και «q» του αρχικού μη προσδιοριστικού αυτόματου ανήκουν στο ίδιο υποσύνολο αν για κάποιο χαρακτήρα-πρότυπο οι μεταβάσεις του μη προσδιοριστικού αυτόματου οδηγούν είτε στην «p», είτε στην «q». Αν υπάρχει μία μετάβαση από την κατάσταση «p» στην «q» μέσω του χαρακτήρα – πρότυπο a και μία μετάβαση-ε από την «q» στην «u», τότε οι καταστάσεις «q» και «u» ανήκουν στο ίδιο υποσύνολο καταστάσεων.

36 36 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα ΜΕΤΑΤΡΟΠΗ ΜΗ ΠΡΟΣΔΙΟΡΙΣΤΙΚΟΥ ΑΥΤΟΜΑΤΟΥ ΣΕ ΠΡΟΣΔΙΟΡΙΣΤΙΚΟ (ΑΝΑΠΤΥΞΗ ΥΠΟΣΥΝΟΛΩΝ) Συμβολίζουμε με reach(F, c i ) το σύνολο όλων των καταστάσεων, που είναι προσβάσιμες από τις καταστάσεις του F μέσω μιας μετάβασης με επιγραφή c i. Συμβολίζουμε με εsucc(F), το σύνολο των καταστάσεων, που είναι προσβάσιμες από το F, μετά από πεπερασμένο αριθμό μεταβάσεων-ε. Θεωρούμε ως νέα κατάσταση του προσδιοριστικού αυτόματου, το σύνολο εsucc({«αρχή»}). Για την κατάσταση αυτή και για κάθε νέο υποσύνολο F  S, το σύνολο των προσβάσιμων καταστάσεων, μέσω μιας μετάβασης με επιγραφή a, δίνεται ως εsucc(reach(F,a)). Ο αλγόριθμος συνεχίζει για όλους τους χαρακτήρες a  Σ. Μία νέα κατάσταση είναι κατάληξη, αν το υποσύνολο καταστάσεων στο οποίο αντιστοιχεί, περιέχει μία κατάληξη του μη προσδ. αυτόματου.

37 37 Μεταγλωττιστές 2.3 Λεξική Ανάλυση και Αυτόματα ΧIX ΜΕΤΑΤΡΟΠΗ ΜΗ ΠΡΟΣΔΙΟΡΙΣΤΙΚΟΥ ΑΥΤΟΜΑΤΟΥ ΣΕ ΠΡΟΣΔΙΟΡΙΣΤΙΚΟ (ΑΝΑΠΤΥΞΗ ΥΠΟΣΥΝΟΛΩΝ) – παράδειγμα

38 38 Μεταγλωττιστές 2.3 Λεξική Ανάλυση και Αυτόματα ΧX ΜΕΤΑΤΡΟΠΗ ΜΗ ΠΡΟΣΔΙΟΡΙΣΤΙΚΟΥ ΑΥΤΟΜΑΤΟΥ ΣΕ ΠΡΟΣΔΙΟΡΙΣΤΙΚΟ (ΑΝΑΠΤΥΞΗ ΥΠΟΣΥΝΟΛΩΝ) – αλγόριθμος Είσοδος: Ένα μη προσδιοριστικό πεπερασμένο αυτόματο Μ Έξοδος: Ένα προσδιοριστικό πεπερασμένο αυτόματο D με γλώσσα L(M) Περιγραφή: Ο αλγόριθμος κατασκευάζει τον πίνακα μεταβάσεων Τ, του D. Οι καταστάσεις και οι μεταβάσεις, που προστίθενται στο αυτόματο D, υπολογίζονται ως εξής: Η μοναδική κατάσταση του D είναι η εsucc({«αρχή»}), που δεν έχει ακόμη επιλεγεί. Όσο (υπάρχει κάποια μη επιλεγμένη κατάσταση ) επανέλαβε επέλεξε την p; Για (κάθε χαρακτήρα ) επανέλαβε q:= εsucc(reach(p,a)); αν (q  D) τότε προσέθεσε την q στο D; T(p,a):=q; Τέλος επανάληψης Μία κατάσταση του D γίνεται κατάληξη, αν το αντίστοιχο σύνολο των καταστάσεων περιέχει τουλάχιστο μία κατάληξη του Μ.

39 39 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΠΡΟΣΔΙΟΡΙΣΤΙΚΩΝ ΠΕΠΕΡΑΣΜΕΝΩΝ ΑΥΤΟΜΑΤΩΝ Τα προσδιοριστικά αυτόματα, που προκύπτουν ως αποτέλεσμα μιας διαδικασίας ανάπτυξης υποσυνόλων, χαρακτηρίζονται συχνά από μεγάλους πίνακες μεταβάσεων. Αυτό οφείλεται στην αύξηση του αριθμού των καταλήξεων. Έχει αποδειχθεί ότι για δοθέν προσδιοριστικό αυτόματο, υπάρχει ένα μοναδικό ισοδύναμο αυτόματο με τον ελάχιστο αριθμό καταστάσεων. Ο αλγόριθμος των Hopcroft & Ullman παράγει το ελάχιστο αυτόματο, διαιρώντας τις καταστάσεις του αρχικού σε σύνολα, έτσι ώστε όλες οι καταστάσεις του ίδιου συνόλου να αναγνωρίζουν τις ίδιες συμβολοσειρές.

40 40 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΠΡΟΣΔΙΟΡΙΣΤΙΚΩΝ ΠΕΠΕΡΑΣΜΕΝΩΝ ΑΥΤΟΜΑΤΩΝ Λέμε ότι σε ένα αυτόματο, μία συμβολοσειρά w διακρίνει την κατάσταση «s» από την κατάσταση «t», αν ξεκινώντας από την «s» και διοχετεύοντας την w, οδηγούμαστε σε κατάλήξη, ενώ δε συμβαίνει το ίδιο με την κατάσταση «t». Η συμβολοσειρά ε διακρίνει τις καταλήξεις από τις υπόλοιπες καταστάσεις του αυτόματου. Αρχικά διακρίνουμε το χώρο των καταστάσεων σε καταλήξεις και μη καταλήξεις. Σταδιακά συγκροτούνται σύνολα καταστάσεων, έτσι ώστε για κάθε ζεύγος καταστάσεων από διαφορετικά σύνολα, αυτές να έχουν διακριθεί από κάθε συμβολοσειρά εισόδου, ενώ για κάθε ζεύγος καταστάσεων του ίδιου συνόλου να μην έχει συμβεί ακόμη κάτι τέτοιο.

41 41 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα (+ | -)? {ψηφίο} {ψηφίο}* Πρέπει να συμπεριλάβουμε και την κατάσταση «λάθος»

42 42 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα Στη συνέχεια παρατηρούμε ότι και «λάθος» «λάθος». Εφόσον όμως για τις καταστάσεις 3 και «λάθος» έχει ήδη καταγραφεί στον πίνακα ότι διακρίνονται μεταξύ τους, συνάγεται το ίδιο και για τις 0 και «λάθος». Η διαδικασία συμπλήρωσης του πίνακα συνεχίζεται μέχρι το σημείο εκείνο στο οποίο δεν είναι δυνατή η εύρεση νέου ζεύγους καταστάσεων, που διακρίνονται από κάποιο χαρακτήρα εισόδου.

43 43 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα Διαπιστώνεται ότι τελικά μόνο οι καταστάσεις 1 και 2 ανήκουν στην ίδια κλάση ισοδυναμίας. Μετονομάζουμε την κατάσταση 2 σε 1 και τελικά παίρνουμε το ελάχιστο αυτόματο του σχήματος

44 44 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΠΡΟΣΔΙΟΡΙΣΤΙΚΩΝ ΠΕΠΕΡΑΣΜΕΝΩΝ ΑΥΤΟΜΑΤΩΝ (παράδειγμα) Οι μεταβάσεις όλων των καταλήξεων οδηγούν σε καταλήξεις, τόσο για την περίπτωση, που ο χαρακτήρας εισόδου είναι γράμμα, όσο και στην περίπτωση, που αυτός είναι ψηφίο. Άρα οι τρεις καταλήξεις δε διακρίνονται από κανένα χαρακτήρα.


Κατέβασμα ppt "1 Κεφάλαιο 2 ο Πεπερασμένα αυτόματα. 2 Μεταγλωττιστές Λεξική ανάλυση και αυτόματα Πεπερασμένα αυτόματα/ ΠΑ (ή μηχανές πεπερασμένων αυτομάτων) αποτελούνται."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google