Λεκτική Ανάλυση (lexical analysis)

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Ταξινόμηση Κειμένων με Νευρωνικά Δίκτυα. Γ. Ταμπουρατζής Ινστιτούτο Επεξεργασίας του Λόγου ΙΝΣΤΙΤΟΥΤΟ ΕΠΕΞΕΡΓΑΣΙΑΣ ΤΟΥ ΛΟΓΟΥ10/12/2002 INSTITUTE FOR LANGUAGE.
Advertisements

Τι είναι ο προγραμματισμός
Copyright © 2005 Elsevier Κεφάλαιο 2 :: Σύνταξη των γλωσσών προγραμματισμού Πραγματολογία των Γλωσσών Προγραμματισμού Michael L. Scott.
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Λογισμικό Συστήματος Κλειώ Σγουροπούλου.
ΠΜΣ ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Κατεύθυνση ΤΕΔΑ Τεχνολογίες Διαχείρισης Ασφάλειας Security Management Engineering Τμήμα Πληροφορικής ΠΑΝΕΠΙΣΤΗΜΙΟ.
Μετρήσεις στη γλώσσα και ανάλυση του λόγου Γ. Μικρός, Γ. Ταμπουρατζής, Σ. Μαρκαντωνάτου ΙΝΣΤΙΤΟΥΤΟ ΕΠΕΞΕΡΓΑΣΙΑΣ ΤΟΥ ΛΟΓΟΥ INSTITUTE FOR LANGUAGE & SPEECH.
Προγραμματισμός Ι Πίνακες •Ο πίνακας είναι μία συλλογή μεταβλητών ίδιου τύπου, οι οποίες είναι αποθηκευμένες σε διαδοχικές θέσεις μνήμης. Χρησιμοποιείται.
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Γλώσσα Προγραμματισμού
ΕΠΛ223 - Θεωρία και Πρακτική Μεταγλωττιστών9-1 Στατικός Έλεγχος Με τον όρο στατικός έλεγχος (static checking) χαρακτηρίζεται ο έλεγχος της συντακτικής.
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Εαρινό Εξάμηνο 2002 Κ. Μουρλάς, Λέκτορας Σημείωση: Οι διαφάνειες αυτές βασίζονται κατά το μεγαλύτερο μέρος τους.
X ΙΣΟΡΡΟΠΙΑ ΕΙΔΗ ΔΥΝΑΜΙΚΗΣ ΣΥΜΠΕΡΙΦΟΡΑΣ t x x ΠΕΡΙΟΔΙΚΗ ΧΑΟΣ t t.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
ΗΥ120 ΨΗΦΙΑΚΗ ΣΧΕΔΙΑΣΗ Συναρτησεις Boole.
ΕΠΛ Θεωρία και Πρακτική Μεταγλωττιστών8-1 Μετάφραση κατευθυνόμενη από τη σύνταξη Ένας μεταγλωττιστής πρέπει όχι απλώς να αναγνωρίζει κατά πόσο μία.
Κεφάλαιο 6: Εισαγωγή στον προγραμματισμό Φυσικές και τεχνητές γλώσσες.
ΘΠ06 - Μεταγλωττιστές Συντακτική Ανάλυση, Bison 1.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τμ. Πληροφορικής,
Θεωρία Υπολογισμού Εισαγωγή (μέρος 2 ο ) Πρακτική Θεωρία.
Ορισμός Ο δούρειος ίππος είναι ένα πρόγραμμα κακόβουλου λογισμικού, το οποίο κρύβεται μέσα σε άλλα προγράμματα. Εισέρχεται σε έναν υπολογιστή κρυμμένο.
ΝΤΕΝΤΕΡΜΙΝΙΣΤΙΚΑ ΠΕΠΕΡΑΣΜΕΝΑ ΑΥΤΟΜΑΤΑ Ι
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τμ. Πληροφορικής,
ΕΠΛ 223 Θεωρία και Πρακτική Μεταγλωττιστών7-1 Πίνακας Συμβόλων Πίνακας συμβόλων: δομή δεδομένων που χρησιμοποιείται για την αποθήκευση διαφόρων πληροφοριών.
ΣΑ από κάτω-προς-τα-πάνω
Θεωρία Υπολογισμού Εισαγωγή (μέρος 3 ο ). Χρειαζόμαστε Μοντέλα Εμπρός πατάκι Πίσω πατάκι Πόρτα ΚλειστόΑνοιχτό.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τμ. Πληροφορικής,
Για τη διεκπεραίωση ενός προβλήματος πρέπει να ακολουθηθεί η εξής διαδικασία:  να γραφεί ο αλγόριθμος να συνταχθεί το πρόγραμμα σε γλώσσα υψηλού επιπέδου.
Κατανόηση (δεδομένα – ζητούμενα) Ανάλυση σε απλούστερα προβλήματα Επίλυση με οργανωμένα, απολύτως καθορισμένα, πεπερασμένα βήματα ΑΛΓΟΡΙΘΜΟΣ.
Κλειστότητα κανονικών γλωσσών
ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ Μάθημα 1ο Εισαγωγή στη Γλωσσική Τεχνολογία
Θεωρία Υπολογισμού Κλειστότητα κανονικών γλωσσών Μη-κανονικές γλώσσες.
Θεωρία Υπολογισμού Λήμμα της Άντλησης. Είναι οι παρακάτω γλώσσες κανονικές; L = {0 n 1 n | n ≥ 0} L = { w | w ίδιο πλήθος 0 και 1} L = { w | w ίδιο πλήθος.
ΛΑΔΑΚΑΚΟΣ ΘΑΛΗΣ Α.Μ ΔΙΑΧΕΙΡΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Θεωρία Υπολογισμού Πεπερασμένα Αυτόματα. Η κλάση των κανονικών γλωσσών είναι κλειστή ως προς την ένωση.
Θεωρία Υπολογισμού Πεπερασμένα Αυτόματα. Υπολογισμοί Γλώσσα που αποδέχεται ένας υπολογιστής: Το σύνολο των λέξεων τα οποία οδηγούν σε κατάσταση αποδοχής.
Θεωρία Υπολογισμού Αντιαιτιοκρατικά Πεπερασμένα Αυτόματα.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 9: Παραγωγή Ενδιάμεσου Κώδικα (Ενδιάμεσες Γλώσσες) Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Κ. ΛΑΖΟΣ - Π. ΚΑΤΣΑΡΟΣ Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τμ.
Περιεχόμενα Μαθήματος
Θεωρία Υπολογισμού Αλγόριθμοι και Μηχανές Turing Υπολογισιμότητα.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 13: Επαναληπτικό μάθημα Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Το περιεχόμενο του μαθήματος διατίθεται.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 8: Πίνακας Συμβόλων Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας.
Εγκατάσταση του joomla σε τοπικό υπολογιστή Νταλούκας Βασίλης Υπεύθυνος ΚΕ.ΠΛΗ.ΝΕ.Τ. 1 ου Γραφείου Δ.Ε. Ν.Ηλείας.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακός Λογισμός.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 11: Βελτιστοποίηση Ενδιάμεσου Κώδικα Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα.
Περιεχόμενα Μαθήματος
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Θεωρία Υπολογισμού Πεπερασμένα Αυτόματα. Σχεδιάστε το αυτόματο που αναγνωρίζει L = {w | w περιέχει την υπολέξη «001»}
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Λεκτική Ανάλυση Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Λεκτική Ανάλυση II Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Όνομα: Μνημονική ακολουθία χαρακτήρων που χρησιμοποιείται για να παραστήσει κάτι άλλο. Αφαίρεση –Αφαίρεση ελέγχου –Αφαίρεση δεδομένων Δέσμευση: Σύνδεση.
Εισαγωγή στον προγραμματισμό Μέρος 3 ο Προγραμματιστικά περιβάλλοντα § 6.7.
Πληροφορική 2 Γλώσσες Προγραμματισμού 1. Γλώσσες προγραμματσιμού  Επιτρέπουν την κωδικοποίηση των αλγορίθμων  Η εκτέλεση ενός προγράμματος θα πρέπει.
Θεωρία υπολογισμού1 Μη αιτιοκρατικό αυτόματο Σ={0}, L = { 0 k : k=2m, k=3m}, μαντεύουμε το μήκος.
Ανάλυση δεδομένων κοινωνικής έρευνας
Μοντελοποίηση υπολογισμού
Κεφάλαιο 4 :: Σημασιολογική Ανάλυση
Ισοδυναμία ΠΑ - ΚΕ Για να δείξουμε ότι οι κανονικές γλώσσες - εκφράσεις και τα πεπερασμένα αυτόματα είναι ισοδύναμα σε εκφραστική δυνατότητα έχουμε να.
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
Ισοδυναμία ΜΠΑ με ΠΑ Για κάθε ΜΠΑ Μ υπάρχει αλγόριθμος ο οποίος κατασκευάζει ΠΑ Μ’ αιτιοκρατικό ώστε να αναγνωρίζουν την ίδια ακριβώς γλώσσα. Καθώς το.
2ο ΓΥΜΝΑΣΙΟ ΣΗΤΕΙΑΣ - ΤΑΞΗ Γ'
Μεταγλωττιστές (Compilers) (Θ)
ΠΛΗΡΟΦΟΡΙΚΗ Γ΄ Γυμνασίου Α΄ Τρίμηνο
Λογισμικό Δημιουργικής Γραφής Kar2ouche Creative Writing
ΤΕΧΝΟΛΟΓΙΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Πληροφοριακά Συστήματα Διοίκησης(Ε) 3ο Εξάμηνο
Μεταγράφημα παρουσίασης:

Λεκτική Ανάλυση (lexical analysis) Ορισμοί Λεκτικές μονάδες Πρότυπα Ορισμός γλωσσών Κανονικές εκφράσεις Πεπερασμένα αυτόματα (ΠΑ) Ντετερμινιστικά (ΝΠΑ) Μη-ντετερμινικά (ΜΠΑ) Μετατροπή από ΜΠΑ σε ΝΠΑ Συγγραφή λογισμικού για λεκτική ανάλυση

Τι είναι η λεκτική ανάλυση; Η μετατροπή των χαρακτήρων που αποτελούν τον πηγαίο κώδικα σε λεκτικές μονάδες if (x1 * x2<1.0) { y = x1; } Χαρακτηριστικά λεκτικών μονάδων Τί είναι οι λεκτικές μονάδες; i f ( x 1 * x 2 < 1 { . ) \n Keyword: if ( Id: x1 * Id: x2 < Num: 1.0 ) { Id: y ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

Παραδείγματα λεκτικών μονάδων (tokens) Αναγνωριστικά (identifiers): x y11 elsex _i00 Δεσμευμένες λέξεις (keywords): if else while break Ακέραιες σταθερές : 2 1000 -500 5L Πραγματικές σταθερές : 2.0 0.00020 .02 1. 1e5 Τελεστές ή σύμβολα : + * { } ++ < << [ ] >= Αλφαριθμητικές ποσότητες (strings): “x” “He said, \“Are you?\”” Σχόλια: /** comment **/ ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

Τα προβλήματα της λεκτικής ανάλυσης Πώς θα περιγράψουμε τις λεκτικές μονάδες; 2.e0 20.e-01 2.0000 Πώς θα γίνει σωστά η διάσπαση των χαρακτήρων του πηγαίου κώδικα; if (x == 0) a = x<<1; iff (x == 0) a = x<1; Πώς θα γίνει η μετατροπή σε λεκτικές μονάδες αποδοτικά; λεκτικές μονάδες με ίδιο πρόθεμα ανάγκη για εξέταση χαρακτήρων που έπονται (look-ahead), π.χ. σε γλώσσες που δεν έχουν δεσμευμένες λέξεις ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

Λεκτικές μονάδες - Πρότυπα - Λέξεις Λεκτικές μονάδες (tokens): τερματικά σύμβολα της γραμματικής που περιγράφει την γλώσσα εισόδου. Πρότυπο (pattern) : κανόνας που περιγράφει σύνολο συμβολοσειρών για τις οποίες ο λεκτικός αναλυτής επιστρέφει την ίδια λεκτική μονάδα. Λέξεις (lexemes): οποιαδήποτε ακολουθία χαρακτήρων περιγράφεται από τα πρότυπα ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Βασικοί Ορισμοί Γλώσσα: είναι οποιοδήποτε υποσύνολο του συνόλου των συμβολοσειρών οι οποίες κατασκευάζονται από το αλφάβητο της γλώσσας. Αλφάβητο: πεπερασμένο σύνολο συμβόλων π.χ. {0,1}. Χαρακτήρας  Σύμβολο Συμβολοσειρά (string): πεπερασμένη ακολουθία συμβόλων (ή λέξη ή πρόταση). ε : κενή συμβολοσειρά |x| : μήκος συμβολοσειράς x Σύμφωνα με τον ορισμό τα σύνολα {ε} και  είναι γλώσσες. ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Βασικοί Ορισμοί (2) Ο ορισμός γλώσσας απαιτεί να προσδιοριστούν: ποιές συμβολοσειρές ανήκουν στη γλώσσα (syntax) η σημασία των συμβολοσειρών (semantics) ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

Πράξεις μεταξύ γλωσσών Παράθεση (concatenation) δύο συμβολοσειρών x και y: xy ή xy Προφανώς ισχύει : x ε = ε x = x Θεωρώντας την παράθεση ως πολλαπλασιασμό μπορούμε να ορίσουμε την ύψωση σε δύναμη: x0=ε και x2=x x , κ.ο.κ. Πράξεις μεταξύ γλωσσών: Παράθεση (concatenation) Ένωση (union) Κλείσιμο (closure) ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

Παράθεση (concatenation) Έστω οι γλώσσες L και Μ. Ως παράθεσή τους LM ή LM ορίζεται η γλώσσα: LM = {st | όπου η συμβολοσειρά s  L και η t  M} Π.χ.αν L={A, B, C, …, Z} και M={0,1,2,…,9} τότε LM είναι η γλώσσα που περιέχει όλους τους συνδυασμούς από κεφαλαία ακολουθούμενα από ένα ψηφίο. Ύψωση σε δύναμη γλώσσας (exponentiation): L0 = {ε} Lk = {s1 s2 …sk | όπου si  L, i=1,..,k} ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Ένωση (union) Έστω οι γλώσσες L και Μ. Ως ένωσή τους LM ορίζεται η γλώσσα: LM = {s | όπου η συμβολοσειρά s  L ή s  M} Π.χ.αν L={A, B, C, …, Z} και M={0,1,2,…,9} τότε LM = {A, B, C, …, Z, 0,1,2,…,9} ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Κλείσιμο Ως κλείσιμο (closure ή Kleene closure) L* της γλώσσας L ορίζεται: δηλ. η ένωση των 0 ή περισσότερων παραθέσεων του L. Βέβαια, ε  L* Ως θετικό κλείσιμο (positive closure) L+ της γλώσσας L ορίζεται: ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Κανονικές εκφράσεις Οι λεκτικές μονάδες των γλωσσών προγραμματισμού μπορούν να περιγραφούν από κανονικές εκφράσεις (regular expressions). H κανονική έκφραση r αναπαριστά τη γλώσσα L(r), π.χ. L(abc) = { “abc” }. Οι κανόνες ορισμού των κανονικών εκφράσεων προσδιορίζουν πώς από το r προκύπτει το σύνολο των συμβολοσειρών που απαρτίζουν την L. ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

Κανόνες ορισμού κανονικών εκφράσεων ε είναι η κανονική έκφραση που συμβολίζει τη γλώσσα {ε} Έστω το αλφάβητο Σ. Για κάθε a  Σ το a είναι μία κανονική έκφραση που συμβολίζει τη γλώσσα {a}. Aν R και S είναι κανονικές εκφράσεις που συμβολίζουν τις γλώσσες L(R) και L(S), τότε (R)|(S) είναι κανονική έκφραση που συμβολίζει τη γλώσσα L(R)  L(S) (R)(S) είναι κανονική έκφραση που συμβολίζει τη γλώσσα L(R) L(S) (R)* είναι κανονική έκφραση που συμβολίζει τη γλώσσα L(R)* ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

Ιδιότητες Κανονικών Εκφράσεων Αν R, S, T κανονικές εκφράσεις, ισχύουν: R|S = S|R R|(S|T) = (R|S)|T R(ST) = (RS)T R(S|T) = RS| RT (R|S)T = RT| ST εR = Rε = R Η ένωση συμπεριφέρεται ως πρόσθεση και η παράθεση ως πολλαπλασιασμός. ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Συντομογραφίες R+ : μία ή περισσότερες συμβολοσειρές από το σύνολο που ανήκει στη γλώσσα L(R). Ισοδυναμεί με την έκφραση R(R*) R? : μία ή καμία από τις συμβολοσειρές της γλώσσας L(R). Ισοδυναμεί με την έκφραση ε|R. [a-z] : ένας από τους χαρακτήρες {a, b, …,z}. Ισοδυναμεί με a|b|c|d…|z. [^a-z] : ένας χαρακτήρας που δεν ανήκει στο σύνολο {a, b, …,z} ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Παραδείγματα Κανονική Έκφραση Συμβολοσειρές L(R) a ‘a’ ab ‘ ab’ a | b ‘ a’ ‘b’ (ab)* ‘’ ‘ab’ ‘abab’ … (a | ε) b ‘ab’ ‘b’ digit = [0-9] ‘0’ ‘1’ ‘2’ ‘3’ … posint = digit+ ‘8’ ‘412’ … int = -? posint ‘-42’ ‘1024’ … real = int (ε | (. posint)) ‘-1.56’ ’12’ ‘1.0’ [a-zA-Z_][a-zA-Z0-9_]* Αναγνωριστικά C, Java ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

Αναγνώριση (σύνταξης) γλωσσών Δύο μέθοδοι έχουν επικρατήσει: Με χρήση ως μοντέλου ενός “αυτόματου” (automaton): αναγνωριστικό μοντέλο, δηλ. αναγνωρίζει, επιστρέφει TRUE ή FALSE ανάλογα με το αν μία συμβολοσειρά ανήκει ή όχι στη γλώσσα Με χρήση ως μοντέλου μίας γραμματικής: γεννητικό μοντέλο, δηλ. παράγει το σύνολο των συμβολοσειρών που ανήκουν στη γλώσσα. ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

Λεκτική + Συντακτική ανάλυση Λεκτική + Συντακτική ανάλυση = επιβεβαίωση της συντακτικής ορθότητας ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Μία απλή προσέγγιση ΛΑ Διαγράμματα μετάβασης (transition diagrams). Υλοποίηση: φωλιασμένες εντολές if-else ή switch-case ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Πεπερασμένα Αυτόματα Πεπερασμένο αυτόματο (ΠΑ) M (finite automaton ή FA) είναι ένα μαθηματικό μοντέλο το οποίο ορίζεται ως η πεντάδα: Μ=(K, Σ, δ, S, F) όπου K : πεπερασμένο σύνολο καταστάσεων Σ : πεπερασμένο αλφάβητο εισόδου δ : συνάρτηση αλλαγής κατάστασης (transition function) S : αρχική κατάσταση, S  K F : σύνολο τελικών (accepting) καταστάσεων F  K ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Αναπαράσταση ΠΑ H αναπαράσταση των ΠΑ μπορεί να γίνει με τους εξής δύο τρόπους: Με γράφο μετάβασης (transition graph) Mε πίνακα αλλαγής κατάστασης (transition table). Π.χ. έστω το ΠΑ Μ=(Κ, Σ, δ, S, F) με Κ = {Α, Β} Σ = {0, 1} δ = {δ(Α,0)=Α, δ(Α,1)=Β, δ(Β,0)=Β, δ(Β,1)=Α} S = Α F = {Α} ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

Αναπαράσταση με γράφο μετάβασης Τερματικές καταστάσεις: Τί σημαίνει ότι ένα ΠΑ αναγνωρίζει μία συμβολοσειρά εισόδου; ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

Αναπαράσταση με πίνακα μετάβασης Τί γίνεται αν του δοθεί η συμβολοσειρά εισόδου: 0 1 0 0 1 0 1 1 -| όπου -| συμβολίζει το τέλος της συμβολοσειράς; ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

Γράφος & Διάγραμμα Μετάβασης Γράφος μετάβασης (transition graph)  ΠΑ Διάγραμμα μετάβασης (transition diagram)  Λεκτικός Αναλυτής ΔΜ: Είναι ντετερμινιστικά Τελικές καταστάσεις δεν έχουν μεταβάσεις (χωρίζονται σε “με” και “χωρίς οπισθοδρόμηση”) Έξοδος δύο φυσικών που αναπαριστούν την λεκτική μονάδα και τη λέξη (lexeme) αντίστοιχα. ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών

Κανονικές εκφράσεις & ΠΑ Ντετερμινιστικά ΠΑ ή ΝΠΑ (Deterministic Finite Automaton ή DFA): ΠΑ όπου έχουμε συνάρτηση μετάβασης δηλαδή υπάρχει μία τιμή για κάθε ζεύγος κατάστασης - συμβόλου εισόδου. Μη-ντετερμινιστικά ΠΑ ή ΜΠΑ : (Non-deterministic Finite Automaton ή NFA): ΠΑ όπου έχουμε σχέση μετάβασης δηλαδή μπορεί να υπάρχουν καμία, μία ή περισσότερες τιμές για ένα τουλάχιστον ζεύγος κατάστασης - συμβόλου εισόδου. Κανονικές εκφράσεις : μηχανισμός περιγραφής κανονικών γλωσσών, δηλ., γλωσσών που μπορούν να αναγνωριστούν από πεπερασμένα αυτόματα. ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών