Σχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι. Εαρινό Εξάμηνο Lec 05 & & 26 /02/2019 Διδάσκων: Γεώργιος Χρ.

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Λεκτική Ανάλυση

Κεφάλαιο 2: Τυπικές γλώσσες. Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος / 216

Μεταγλωττιστές. Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

ΜΑΘΗΜΑ: Μεταγλωττιστές

Απάντηση: (func endfunc)-([a-za-z])+

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών 6

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση. Στη δήλωση ορισμό κανονικών εκφράσεων

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών. Προδιαγραφές

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 7: Ασυμφραστικές Γλώσσες (Γλώσσες Ελεύθερες Συμφραζομένων)

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1)

Μεταγλωττιστές. Ενότητα 7: Συντακτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Κατηγορικές Γραµµατικές

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);

Μοντελοποίηση Υπολογισμού. Γραμματικές Πεπερασμένα Αυτόματα Κανονικές Εκφράσεις

Εισαγωγή στην Επιστήμη των Υπολογιστών

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Λογισμικό Συστήματος. Κλειώ Σγουροπούλου

Περιεχόμενα Συμβολοσειρές Γλώσσες ΘΥ 6: Συμβολοσειρές & γλώσσες Επ. Καθ. Π. Κατσαρός 24/07/2014 Επ. Καθ. Π. Κατσαρός ΘΥ 6: Συμβολοσειρές & γλώσσες

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Στοιχεία Θεωρίας Γλωσσών. (συνέχεια) (συνέχεια) Πέμπτη 27 Οκτωβρίου 2016 Θεόδωρος Τζουραμάνης Επίκουρος Καθηγητής

Λεκτικός Αναλυτής. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Ορισµοί. Τυπικές Γλώσσες Γραµµατικές και Μεταφραστές. Αλφάβητο: ένα οποιδήποτε µη κενό και πεπερασµένο σύνολο Σ αποτελούµενο από σύµβολα

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 3 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 8: Υπολογισιμότητα & Γλώσσες

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος Λεκτική Ανάλυση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Σειρά Προβλημάτων 1 Λύσεις

Θέματα υπολογισμού στον πολιτισμό

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

Γλώσσες Χωρίς Συμφραζόμενα

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

Περιεχόμενα. 1 Υπολογισιμότητα. Ιστορία - Εισαγωγή. Μαθηματικό Υπόβαθρο. LOOP: Μια απλή γλώσσα προγραμματισμού

Θεωρία Υπολογισμού και Πολυπλοκότητα

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Σημασιολογική Ανάλυση

Κανονικές Γλώσσες. Κανονικές Γλώσσες. Κανονικές Γλώσσες και Αυτόματα. Κανονικές Γλώσσες και Αυτόματα

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

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

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

CSC 314: Switching Theory

Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

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

Μεταγλωττιστές. Εργαστήριο 5. Εισαγωγή στο BISON. Γεννήτρια Συντακτικών Αναλυτών. 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Μοντελοποίηση υπολογισμού. Θέματα Υπολογισμού στον Πολιτισμό Πεπερασμένα αυτόματα

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Κανονικές Γλώσσες. ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation

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

Τεχνητή Νοημοσύνη. 21η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Θεωρία Υπολογισμού Αλφάβητα, Γλώσσες, Κανονικές Εκφράσεις

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Εισαγωγή στην Επιστήμη των Υπολογιστών

Σειρά Προβλημάτων 1 Λύσεις

Σειρά Προβλημάτων 1 Λύσεις

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Συντακτική Ανάλυση II

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Γλώσσες Χωρίς Συμφραζόμενα

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Πίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 4 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Ανάπτυξη και Σχεδίαση Λογισμικού

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

Μεταγλωττιστές. Ενότητα 8: Συντακτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Θεωρία Υπολογισμού. Ενότητα 5 : Λογικά Επιχειρήματα, Αλφάβητα & Γλώσσες (2/2) Αλέξανδρος Τζάλλας

Θέματα Μεταγλωττιστών

ΚΕΦΑΛΑΙΟ 6: Γλώσσες. 6.1 Ιστορική εξέλιξη 6.4 Υλοποίηση γλώσσας. Κεφάλαιο 6: «Γλώσσες Προγραµµατισµού»

Θέματα Μεταγλωττιστών

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Εισαγωγή στην Επιστήμη των Υπολογιστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Επανάληψη Μαθήματος

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών

Κεφάλαιο 3 : Σύνταξη Γλωσσών Προγραμματισμού

Έστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Θεωρία Υπολογισμού και Πολυπλοκότητα

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος Συντακτική Ανάλυση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Σειρά Προβλημάτων 1 Λύσεις

Σειρά Προβλημάτων 3 Λύσεις

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση

Τυπικές Γλώσσες. και Μεταφραστές. Γιώργος Μανής

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2): Αυτόµατα Στοίβας. Παραδείγµατα Σχεδιασµού CFG. Παράδειγµα 1.

Φροντιστήριο 6 Λύσεις

Transcript:

Σχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι Εαρινό Εξάμηνο 2018-2019 Lec 05 & 06 25 & 26 /02/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

Φάσεις μεταγλώττισης Αρχικό Πρόγραμμα Λεκτική Ανάλυση λεκτικές μονάδες Πίνακας Συμβόλων Τελικό Πρόγραμμα Συντακτική Ανάλυση συντακτικό δένδρο Σημασιολογική Ανάλυση συντακτικό δένδρο Παραγωγή Ενδιάμεσου Κώδικα ενδιάμεσος κώδικας Βελτιστοποίηση Ενδιάμεσου Κώδικα ενδιάμεσος κώδικας Παραγωγή Τελικού Κώδικα τελικός κώδικας Βελτιστοποίηση Τελικού Κώδικα Χειριστής Σφαλμάτων

Βασικές Έννοιες

Ο ρόλος της λεξικής ανάλυσης (1/3)

Ο ρόλος της λεξικής ανάλυσης (2/3)

Ο ρόλος της λεξικής ανάλυσης (3/3)

Λεκτικές Μονάδες σε μια ΓΠ Μια λεκτική μονάδα για κάθε λέξη κλειδί (keyword) Λεκτικές μονάδες για κάθε τελεστή ή μια ομάδα για κάθε τελεστή (operator) Μια λεκτική μονάδα για τα αναγνωριστικά (identifiers) Λεκτικές Μονάδες για σταθερές (αριθμητικές, συμβολοσειρές) Λεκτικές Μονάδες για συντακτικά σύμβολα (παρενθέσεις, κόμματα, κλπ)

Τιμές Ιδιοτήτων (Attribute values) (1/2) Πως ξεχωρίζουν τα λεξήματα που αντιστοιχούν στην ίδια λεκτική μονάδα; πχ. id <- x, rate, position number <- 23 1123.345 1 0 Τιμές ιδιοτήτων που περιγράφουν το λέξημα Ιδιαίτερα σημαντικό στα αναγνωριστικά (id), όπου συνήθως αποθηκεύεται ένας δείκτης στον πίνακα συμβόλων. Για τους αριθμούς μπορεί να είναι η τιμή που αντιστοιχεί στον αριθμό, ή ένας δείκτης στην συμβολοσειρά που αναπαριστά τον αριθμό.

Τιμές Ιδιοτήτων (Attribute values) (2/2) Ε = Μ * C ** 2 (id, δείκτης στον πίνακα για το Ε) (assign_op) (id, δείκτης στον πίνακα για το M) (mult_op) (id, δείκτης στον πίνακα για το C) (exp_op) (number,2) Τα ονόματα ιδιοτήτων χρησιμοποιούνται συνήθως στην φάση της συντακτικής ανάλυσης ενώ τα οι τιμές ιδιοτήτων σε μεταγενέστερες φάσεις.

Αλφάβητο Μη κενό, πεπερασμένο σύνολο από σύμβολα Σ ονομάζεται αλφάβητο. {0,1} {α,β,γ,δ...ω} {2,3,5,6} σύνολο ASCII χαρακτήρων Συμβολοσειρά: πεπερασμένη παράθεση από σύμβολα. 010, μεταγλωττιστές, 2233322 κενή συμβολοσειρά ε Μήκος της συμβολοσειράς είναι ο αριθμός των συμβόλων που περιέχει. 010 = 3, μεταγλωττιστές =14

Συμβολοσειρές Σ n Σύνολο συμβολοσειρών μήκους n. Σ 0 ={ε}, Σ 2 ={00,01,10,11} Με Σ* συμβολίζεται η ένωση όλων των Σ n Σ = n=0 Σ n Με Σ + η ένωση όλων των μη-κενών συνόλων. Σ + = n=1 Σ n

Παράθεση και Δυνάμεις Παράθεση δύο συμβολοσειρών α και β αποτελείται από τα σύμβολα της α ακολουθούμενα από όλα τα σύμβολα της β. α=011 β=000 αβ=011000 Ύψωση σε δύναμη n είναι η παράθεση n μιας συμβολοσειράς n φορές με τον εαυτό της. α 0 = ε α n+1 = αα n

Συμβολοσειρές Πρόθεμα (prefix) Η συμβολοσειρά α είναι πρόθεμα της συμβολοσειράς β εάν υπάρχει συμβολοσειρά γ τέτοια ώστε β = αγ wh while Επίθεμα ή κατάληξη (suffix) Η συμβολοσειρά α είναι επίθεμα της συμβολοσειράς β εάν υπάρχει συμβολοσειρά γ τέτοια ώστε β = γα ile while Υποσυμβολοσειρά (substring) Η συμβολοσειρά α είναι υποσυμβολοσειρά της συμβολοσειράς β εάν υπάρχουν συμβολοσειρές γ και δ τέτοιες ώστε β = δαγ hil while

Γλώσσες Μια γλώσσα L ενός αλφαβήτου Σ είναι ένα υποσύνολο του Σ*, δηλαδή: Ένα απαριθμήσιμο σύνολο συμβολοσειρών ενός πεπερασμένου αλφάβητου. Έστω το αλφάβητο Σ={a,b,c,d,e...y,z}. Παραδείγματα γλωσσών είναι: L={if} L={if, then, else, while, repeat} L={a n b 2n n ακέραιος} H κενή γλώσσα L = {ε} Η πλήρης γλώσσα

Πράξεις στις Γλώσσες (1/2) Εφόσον οι γλώσσες είναι σύνολα, ορίζονται σε αυτές πράξεις συνόλων: ένωση, τομή, διαφορά. Ένωση δύο γλωσσών L1 και L2 L 1 L 2 = {α α L 1 α L 2 } Η παράθεση L δύο γλωσσών L1 και L2 είναι η γλώσσα που περιέχει συμβολοσειρές που είναι παραθέσεις μιας συμβολοσειράς της L1 και μιας συμβολοσειράς της L2. L 1 L 2 = {αβ α L 1 β L 2 }

Πράξεις στις Γλώσσες (2/2) Παράθεση μιας γλώσσας με τον εαυτό της n φορές. L 0 ={ε} L n = LL n 1 Κλείσιμο Kleene (Kleene closure) μιας γλώσσας L, είναι η παράθεση με τον εαυτό της μηδέν η περισσότερες φορές. L = n=0 L n Θετικό κλείσιμο Kleene είναι η παράθεση μιας γλώσσας με τον εαυτό της, μια η περισσότερες φορές. L + = n=1 L n = LL

Γραμματική Σύστημα παραγωγής συμβολοσειρών G, που αποτελείται από μια τετράδα (T,N,P,S) T τερματικά σύμβολα (terminals) που αποτελούν το αλφάβητο της γλώσσας. N μη-τερματικά σύμβολα (non-terminals) P κανόνες παραγωγής (production rules) της μορφής α β, όπου α και β (Τ Ν)* S αρχικό σύνολο, το οποίο είναι στοιχείο το Ν (start symbol)

Αναπαραγωγή συμβολοσειράς Η διαδικασία αρχίζει με το αρχικό σύμβολο. Αντικαθιστούμε μια υποσυμβολοσειρά α της τρέχουσας δ με την β εάν υπάρχει κανόνας παραγωγής α β Αν δ = γαγ' τότε από γαγ' -> γβγ' Όταν η συμβολοσειρά περιέχει μόνο τερματικά σύμβολα, λέμε ότι αυτή παράγεται από την γραμματική.

Αναπαραγωγή συμβολοσειράς. Παράδειγμα 1 ο Έστω η γραμματική Τ = {a,b} N = {I,S,U} P = {I asb, S e S as, S bs} S = I Ι asb ab (παραγωγή) Ι asb absb abasb ababb T τερματικά σύμβολα (terminals) που αποτελούν το αλφάβητο της γλώσσας. N μη-τερματικά σύμβολα (nonterminals) P κανόνες παραγωγής (production rules) της μορφής α β, όπου α και β (Τ Ν)* S αρχικό σύνολο, το οποίο είναι στοιχείο το Ν (start symbol)

Αναπαραγωγή συμβολοσειράς. Παράδειγμα 2 ο Έστω η γραμματική Τ = {0,1-9,.,e} N = {Ν,D,Ds,E} P = { Ν DsE, D 0, D 1, D 2, D 3,...,D 9 Ds DDs, Ds D, E eds, E ε} S = Ν Ν 2DsE 24E 24 (παραγωγή) N 4DsE 45E 45eDs 45e6 45e6

Ορισμοί Συμβολοσειρά α Τ* παράγεται από την G όταν υπάρχει μια ακολουθία παραγωγών τέτοια ώστε α 1 = S α n = α και ισχύει α i α i+1 για κάθε i, 0 < i < n Μεταβατικό κλείσιμο α + β Ανακλαστικό Μεταβατικό κλείσιμο α * β Η γραμματική G παράγει την γλώσσα L(G), για την οποία L(G) = {α T* S + α}

Ιεραρχία Chomsky (1/3) Γραμματικές τύπου 0. Γραμματικές τύπου 1 (γραμματικές με συμφραζόμενα context sensitive grammars) Γραμματικές τύπου 2 (γραμματικές χωρίς συμφραζόμενα context free grammars) Γραμματικές τύπου 3 (κανονικές γραμματικές regular grammars)

Ιεραρχία Chomsky (2/3) Γραμματικές τύπου 0. Όλες οι γραμματικές χωρίς περιορισμούς. Γραμματικές τύπου 1 (γραμματικές με συμφραζόμενα context sensitive grammars) Γραμματικές της μορφής α β, έτσι ώστε η συμβολοσειρά α να περιέχει τουλάχιστον ένα μητερματικό σύμβολο και α β.

Ιεραρχία Chomsky (3/3) Γραμματικές τύπου 2 (γραμματικές χωρίς συμφραζόμενα context free grammars) Οι κανόνες παραγωγής έχουν μορφή α β, όπου η συμβολοσειρά α αποτελείται από ένα μη-τερματικό σύμβολο και η β είναι συμβολοσειρά. Γραμματικές τύπου 3 (κανονικές γραμματικές regular grammars) Οι κανόνες παραγωγής έχουν την μορφή Α aβ Α a Α ε A,B μη τερματικά και a τερματικό.

Αναγνωριστές Μια αφηρημένη μηχανή που δέχεται ως είσοδο μια συμβολοσειρά ενός αλφαβήτου και δίνει έξοδο ναι ή όχι. Αναφέρονται και ως αυτόματα. Μηχανή Turing πολυπλοκότερο υπολογιστικό μοντέλο Γραμμικά Περιορισμένη Μηχανή Turing ΜΤ με περιορισμό Μνήμης Αυτόματα Στοίβας Πεπερασμένα Αυτόματα.

Γραμματικές και Αναγνωριστικά Μοντέλα Γραμματική Αναγνωριστικά Μοντέλα Γραμματικές τύπου 0. Μηχανή Turing Γραμμικά Περιορισμένη Γραμματικές με συμφραζόμενα Μηχανή Turing Γραμματικές χωρίς συμφραζόμενα Αυτόματα Στοίβας Κανονικές γραμματικές Πεπερασμένα Αυτόματα.

Κανονικές εκφράσεις (1/2)

Κανονικές εκφράσεις (2/2)

Κανονικές εκφράσεις. Παραδείγματα (1/3) συμβολοσειρές που ξεκινούν με το πρόθεμα "auth" ή "csd_auth" ακολουθούμενο το σύμβολο "-" και από ένα ή περισσότερα γράμματα πχ. auth-makris, auth-computer, csd_auth makris,, csd_auth a (auth csd_auth)-([a-za-z])+ ένα ή περισσότερα γράμματα ακολουθούμενα από το σύμβολο "_" (underscore) και από ένα ή περισσότερα ψηφία. πχ. var_19, complexvar_2019, a_4 ([a-z]+)_([0-9])+

Κανονικές εκφράσεις. Παραδείγματα (2/3) συμβολοσειρές που αποτελούνται από 0 και 1, όπου κάθε 0 έχει πριν και μετά τουλάχιστον ένα 1. πχ. 11 101 101011 ενώ απορρίπτονται οι 110, 00 και 0010. 1(1 01)*

Κανονικές εκφράσεις. Παραδείγματα (3/3) συμβολοσειρές με μήκος τουλάχιστον 2 που περιέχουν τουλάχιστον ένα 1, οι οποίες όταν ξεκινούν από 1 τότε η υπόλοιπη συμβολοσειρά πρέπει να έχει άρτιο αριθμό 1, ενώ όταν ξεκινούν από 0 η υπόλοιπη συμβολοσειρά πρέπει να έχει περιττό αριθμό 1, πχ 1011, 1010101110100 και 01, 0111, 0100010100. Γραμματική: S::=1B S::=0C B::=0B B::=1C C::=0C C::=1D D::=ε D::=1C D::=0D (0 10*1)0*1(0 10*1)*

Λεξική Ανάλυση & Αυτόματα (1/7)

Λεξική Ανάλυση & Αυτόματα (2/7)

Λεξική Ανάλυση & Αυτόματα (3/7)

Λεξική Ανάλυση & Αυτόματα (4/7)

Λεξική Ανάλυση & Αυτόματα (5/7)

Λεξική Ανάλυση & Αυτόματα (6/7)

Λεξική Ανάλυση & Αυτόματα (7/7)

Χαρακτηριστικά της λεκτικής δομής των ΓΠ (1/6)

Χαρακτηριστικά της λεκτικής δομής των ΓΠ (2/6)

Χαρακτηριστικά της λεκτικής δομής των ΓΠ (3/6)

Χαρακτηριστικά της λεκτικής δομής των ΓΠ (4/6)

Χαρακτηριστικά της λεκτικής δομής των ΓΠ (5/6)

Χαρακτηριστικά της λεκτικής δομής των ΓΠ (6/6)

Σύγκριση λεκτικής δομής ΓΠ (1/3)

Σύγκριση λεκτικής δομής ΓΠ (2/3)

Σύγκριση λεκτικής δομής ΓΠ (3/3)