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

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

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

Στοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (1) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος.

Γνωριµία. Θεωρία Υπολογισµού: Εισαγωγικά. Αντικείµενο Μαθήµατος. Επικοινωνία.

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

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

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

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

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

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

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

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (3) Παραδείγµατα µε Κανονικές Εκφράσεις. Σε αυτό το µάθηµα.

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

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

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E.

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

Σε αυτό το µάθηµα. Εισαγωγή στις Μηχανές Turing. Μηχανή Turing (Turing Machine - TM) Μηχανές Turing. Παραδείγµατα Μηχανών Turing

Ισοδυναµίες, Μερικές ιατάξεις

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

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

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

Η NTM αποδέχεται αν µονοπάτι στο δέντρο που οδηγεί σε αποδοχή.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

771 Η - Θεωρία Υπολογισµών και Αλγορίθµων

Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Παράδειγµα (1/2) O( g(n) ) είναι σύνολο συναρτήσεων:

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

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

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

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

ΠΛΗ30 ΕΝΟΤΗΤΑ 3: ΚΑΝΟΝΙΚΕΣ ΓΛΩΣΣΕΣ. Μάθηµα 3.2: ηµήτρης Ψούνης

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

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

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

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

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

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

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

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

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

HEAD INPUT. q0 q1 CONTROL UNIT

Γλώσσες που περιγράφονται από Κανονικές Εκφράσεις

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

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

Η δυαδική σχέση M ( «παράγει σε ένα βήμα» ) ορίζεται ως εξής: (q, w) M (q, w ), αν και μόνο αν w = σw, για κάποιο σ Σ

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο;

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

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

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Παράδειγµα αναδροµικού ορισµού. οµική επαγωγή ΠΑΡΑ ΕΙΓΜΑ. 3ο Μάθηµα

Αρχή Εγκλεισµού-Αποκλεισµού (3 σύνολα) Αρχή Εκλεισµού-Αποκλεισµού Η Τάξη των Συναρτήσεων. Εφαρµογές. Παράδειγµα 1.

Σύνοψη Προηγούµενου. Ισοδυναµίες, Μερικές ιατάξεις. Σχέσεις Ισοδυναµίας. Σχέσεις, Ιδιότητες, Αναπαράσταση. Ανακλαστικές (a, a) R

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

Μαθηµατικά για Πληροφορική

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

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

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

Μαθηµατική Επαγωγή. Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς

Γνωριµία. ιακριτά Μαθηµατικά. Βιβλία Μαθήµατος. Επικοινωνία. ιδάσκων: Ορέστης Τελέλης. Ωρες γραφείου (502, Γρ.

ιακριτά Μαθηµατικά Ορέστης Τελέλης Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Σύνολα 1 / 36

Γραµµατικές για Κανονικές Γλώσσες

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

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

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

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

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

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

3 Αναδροµή και Επαγωγή

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

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

Σχέσεις, Ιδιότητες, Κλειστότητες

Μηχανές Πεπερασµένων Καταστάσεων

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 3: Ντετερμινιστικά Πεπερασμένα Αυτόματα (DFA)

ιαιρετότητα Στοιχεία Θεωρίας Αριθµών «Ο Αλγόριθµος της ιαίρεσης» Αριθµητική Υπολοίπων 0 r < d και a = d q +r

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

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

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

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» (ε) Κάθε συγκλίνουσα ακολουθία άρρητων αριθµών συγκλίνει σε άρρητο αριθµό.

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

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

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

Στοιχεία Θεωρίας Γραφηµάτων (1)

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Εισαγωγή στην Τοπολογία

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 4: Μη Ντετερμινιστικά (Αντιαιτιοκρατικά) Πεπερασμένα Αυτόματα (ΝFA)

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

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

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

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές»

Αλγεβρικες οµες Ι Ασκησεις - Φυλλαδιο 2

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

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

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

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

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

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

Μάθηµα Θεωρίας Αριθµών Ε.Μ.Ε

Transcript:

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 1 / 24

Μοντελοποίηση του Υπολογισµού Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί); Η µελέτη των ερωτηµάτων αυτων προϋποθέτει ορισµό του υπολογιστή. ηλαδή, ορισµό και κατανόηση της ϕύσης του υπολογισµού. Ισοδύναµα, προϋποθέτει ορισµό της έννοιας του αλγορίθµου. Αφετηρία προς την κατεύθυνση αυτή δίνουν οι εξής παρατηρήσεις: Οι υπολογιστές επεξεργάζονται ακολουθίες συµβόλων. Αποδέχονται/εκτελούν οδηγίες σε καλά ορισµένες τυπικές γλώσσες. Οι οδηγίες αυτές αποτελούνται από ακολουθίες συµβόλων. Οι τυπικές γλώσσες επιτρέπουν την ανάπτυξη υπολογιστικών µοντέλων. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 2 / 24

Αλφάβητο και Λέξεις Αλφάβητο: πεπερασµένο, µη κενό σύνολο από σύµβολα. Σ = { 0, 1 } Σ = { a, b, c } Σ = { while, void, int, for, if... } Λέξη/Συµβολοσειρά: πεπερασµένη ακολουθία συµβόλων του αλφαβήτου 0 1 0 1 1, a b b b c a, ένα πρόγραµµα σε C (ή Java, ή C++,... ) Μήκος λέξης: πλήθος συµβόλων της λέξης, συµβολίζεται µε w. Κενή Λέξη: Λέξη µηδενικού µήκους, συµβολίζεται µε ɛ (ή µε λ). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 3 / 24

Πράξεις µε Λέξεις Παράθεση των λέξεων x και y: x y ή απλώς xy. Π.χ., παράθεση των 010 και 10 δίνει 01010. Επανάληψη της λέξης w k ϕορές: w k = k ϕορές {}}{ w w w. Αντίστροφη w R της λέξης w: προκύπτει γράφοντας την w «ανάποδα». (100) R = 001, (abcc) R = ccba. Παλινδροµική Λέξη: w = w R, π.χ.: (010) R = 010. Για κάθε δύο λέξεις x και y: (x y) R = y R x R. x υπολέξη της w αν: w = y x z. Επιτρέπεται είτε y = ɛ είτε z = ɛ (ή και τα δύο). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 4 / 24

Πράξεις σε αλφάβητο Σ k : σύνολο λέξεων µήκους k 0 που αποτελούνται από σύµβολα του Σ. { 0, 1 }2 = { 00, 01, 10, 11 }. { a, b, c } 2 = { ab, bc, ac, ca, cb, ba }. Παρατήρηση: Σ 0 = {ɛ}, για κάθε αλφάβητο Σ. Σ : σύνολο όλων των λέξεων επί του Σ: Σ = k N Σ k Π.χ., { 0, 1 } = { ɛ, 0, 1, 00, 01, 10, 11, 000, 001,... }. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 5 / 24

Τυπικές Γλώσσες Τυπική Γλώσσα L επί του αλφαβήτου Σ: ένα υποσύνολο του Σ. Με άπειρο ή πεπερασµένο πλήθος συµβολοσειρών (λέξεων) - αριθµήσιµο. Παραδείγµατα γλωσσών επί του αλφαβήτου Σ = { 0, 1, 2 }: { 012, 120, 201, 210, 102, 021 } = Σ 3 { ɛ, 0, 00, 000,... } { w Σ : το τελευταίο ψηφίο του w είναι 1 }. { } = (η κενή γλώσσα). { ɛ } η γλώσσα που περιέχει µόνο την κενή λέξη. Γλώσσα C = { w : w συντακτικά ορθό πρόγραµµα σε C } Κάθε συντακτικά ορθό πρόγραµµα είναι µία λέξη της γλώσσας. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 6 / 24

Πράξεις µε Γλώσσες Πράξεις Συνόλων: ένωση, τοµή, διαφορά, συµπλήρωµα,... Παράθεση: L 1 L 2 = L 1 L 2 = { w = x 1 x 2 : όπου x 1 L 1, x 2 L 2 } Π.χ., αν L 1 = { 0, 00, 11 } και L 2 = { ɛ, 1 }: L 1 L 2 = { 0, 00, 11, 01, 001, 111 } Παράθεση Γλώσσας µε την ίδια: L 2 = { w = x 1 x 2, για x 1 L και x 2 L } Παράθεση Γλώσσας k φορές: L k = { w = x 1 x 2 x k, για x 1, x 2,..., x k L } Προσοχή: για κάθε γλώσσα L: L 0 = {ɛ} Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 7 / 24

Πράξεις µε Γλώσσες Παράθεση κάθε (πεπερασµένου) πλήθους λέξεων της L: L = k N L k (Παρατήρηση: k 0.) Παράδειγµα: L = { a, bb } = L = { ɛ, a, bb, abb, bba, aabb, bbaa, abba,... } Επίσης: L = { ɛ } L = { ɛ } L = L = { ɛ } Παράθεση θετικού πεπερασµένου πλήθους λέξεων της L: L + = L k (Παρατήρηση: k 1.) k Z + Πότε είναι L = L + ; Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 8 / 24

Μέθοδοι Αναπαράστασης Γλωσσών Απαρίθµηση των λέξεών τους, όταν είναι πεπερασµένες. ιατύπωση κοινής χαρακτηριστικής ιδιότητας που έχουν οι λέξεις: L 1 = { w {0, 1} : w έχει άρτιο πλήθος από 1 } L 2 = { 0 n 1 n : n 0 }. Συνολοθεωρητικές πράξεις επί άλλων γνωστών γλωσσών, π.χ., L 1 L 2. Γραµµατικές: µηχανισµοί παραγωγής λέξεων της γλώσσας. Υπολογιστικές Μηχανές: αποφασίζουν αν µια λέξη ανήκει στη γλώσσα. Ενας συντακτικός αναλυτής αποφασίζει αν ένα πρόγραµµα C είναι ορθό. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 9 / 24

Γραµµατική οµής Φράσεως G = (V, T, S, P) Αλφάβητο Γραµµατικής, V: περιέχει όλα τα σύµβολα της γραµµατικής. Σύνολο τερµατικών συµβόλων: T V. Οι λέξεις της γλώσσας αποτελούνται µόνο από τερµατικά σύµβολα. Σύνολο µη τερµατικών συµβόλων: N = V \ T. Εχουν ϱόλο «µεταβλητών»: αντικαθίστανται σύµφωνα µε κανόνες. Συµβολίζονται συνήθως µε κεφαλαία γράµµατα. Εναρκτήριο (Αρχικό) Σύµβολο: S N. (µη τερµατικό) Η παραγωγή λέξεων εκκινεί από το S και ακολουθεί κανόνες παραγωγής. Σύνολο Κανόνων Παραγωγής P (V N V ) V. ιµελής σχέση που συσχετίζει λέξεις µε µη τερµατικά, µε άλλες λέξεις. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 10 / 24

Παράδειγµα Γραµµατική G = (V, T, S, P) µε: V = { a, b, A, B, S }, T = { a, b }, αρχικό σύµβολο S και σύνολο κανόνων παραγωγής P: P = { S ABa, A BB, B ab, AB b } Λέξεις που παράγονται από τη G: b a S ABa, AB b a b a b a b a S ABa, A BB, B ab ( 3) a b a b a b a S ABa, B ab, A BB, B ab ( 2) Είναι εποµένως L(G) = { ba, abababa }. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 11 / 24

Σχέσεις Παραγωγής Εστω: w 0 = l z 0 r V και w 1 = l z 1 r V. Αν: z 0 z 1 P, Λέµε ότι: «η w 1 παράγεται άµεσα από την w 0». Γράφουµε: w 0 w 1. Εστω: w 0, w 1,..., w n V. Αν: w i w i+1, για i = 0,..., n 1, Λέµε ότι: «η w n παράγεται από την w 0». Γράφουµε: w 0 w n. Γλώσσα Γραµµατικής G: L(G) = { w T : S w } Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 12 / 24

Παραδείγµατα Ποιά γλώσσα παράγει η γραµµατική G = (V, T, S, P), µε: 1. V = { S, A, a, b }, T = { a, b}, P = {S aa, S b, A aa} 2. V = { 0, 1, S }, T = { 0, 1 }, P = { S 11S, S 0 } Να δοθούν γραµµατικές δοµής ϕράσεως που παράγουν τις γλώσσες: 3. { 0 n 1 n : n = 0, 1, 2,... } 4. { 0 m 1 n : m, n N } 5. { 0 n 1 n 2 n : n N } Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 13 / 24

Παράδειγµα (1) Ποιά γλώσσα παράγει η γραµµατική G = (V, T, S, P) µε: V = { S, A, a, b }, T = { a, b}, P = {S aa, S b, A aa} Με δοκιµές: Ξεκινώντας από το αρχικό σύµβολο, S, έχουµε δύο δυνατές παραγωγές: S aa και S b Η δεύτερη παραγωγή µας δίνει τη λέξη b. Συνεχίζοντας από την πρώτη, µε τον κανόνα A aa λαµβάνουµε aaa. Εποµένως, είναι L(G) = { aaa, b}. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 14 / 24

Παράδειγµα (2) Ποιά γλώσσα παράγει η γραµµατική G = (V, T, S, P) µε: V = { 0, 1, S }, T = { 0, 1 }, P = { S 11S, S 0 } Με δοκιµές: Ξεκινώντας έχουµε S 0, εποµένως 0 L(G). Εχουµε επίσης S 11S. Στη συνέχεια, χρησιµοποιώντας S 0, συµπεραίνουµε 110 L(G). Μπορούµε επίσης να συνεχίσουµε µε S 11S και να λάβουµε 1111S. Συνεχίζοντας µε S 0, συµπεραίνουµε 11110 L(G). ιαισθητικά συµπεραίνουµε ότι L(G) = { 0, 110, 11110, 1111110,... } Οι λέξεις µε άρτιο πλήθος από 1 και ένα µοναδικό 0 στο τέλος. Αυτό αποδεικνύεται επαγωγικά. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 15 / 24

Παράδειγµα (3) Να δοθεί γραµµατική δοµής ϕράσεως που παράγει τη γλώσσα: { 0 n 1 n n = 0, 1, 2,... } Παρατηρούµε ότι ɛ L(G) (για n = 0). Εισάγουµε έναν κανόνα S ɛ. Επειδή «πλήθος 0» = «πλήθος των 1», εισάγουµε τον κανόνα S 0 S 1. Αποδεικνύεται επαγωγικά ότι η γραµµατική αυτή είναι ορθή. G = ( V = {0, 1, S}, T = {0, 1}, S, P = { S ɛ, S 0 S 1 } ) Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 16 / 24

Παράδειγµα (4α) Να δοθεί γραµµατική δοµής ϕράσεως που παράγει τη γλώσσα: { 0 m 1 n m και n είναι µη αρνητικοί ακέραιοι } Μια γραµµατική G 1 = (V, T, S, P) που παράγει τη γλώσσα είναι ως εξής: Αλφάβητο Γραµµατικής G 1 : V = { 0, 1, S }. Τερµατικά Σύµβολα της G 1 : T = { 0, 1 }. Μη τερµατικά Σύµβολα της G 1 : N = { S }. Παραγωγές της G 1 : P = { S ɛ, S 0S, S S1 }. Παρατηρούµε ότι παράγεται η λέξη ɛ και επιπλέον για κάθε άλλη παραγωγή πεπερασµένου πλήθους ϐηµάτων έχουµε ένα S διαθέσιµο για αντικατάσταση, είτε µε 0S, είτε µε S1 (όσες ϕορές επιθυµούµε). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 17 / 24

Παράδειγµα (4β) Να δοθεί γραµµατική δοµής ϕράσεως που παράγει τη γλώσσα: { 0 m 1 n m και n είναι µη αρνητικοί ακέραιοι } Μια δεύτερη γραµµατική G 2 = (V, T, S, P) που παράγει τη γλώσσα: Αλφάβητο Γραµµατικής G 2 : V = { 0, 1, S, A }. Τερµατικά Σύµβολα της G 2 : T = { 0, 1 }. Μη τερµατικά Σύµβολα της G 2 : N = { S, A }. Παραγωγές της G 2 : P = { S ɛ, S 0S, S 1A, S 1, A 1A, A 1 } Παράγει ακριβώς την ίδια Ϲητούµενη γλώσσα µε την G 1 που παρουσιάστηκε προηγουµένως. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 18 / 24

Παράδειγµα (5) Να δοθεί γραµµατική δοµής ϕράσεως που παράγει τη γλώσσα: { 0 n 1 n 2 n : n N } Παράγεται από τη γραµµατική G = (V, T, S, P), µε: Αλφάβητο: V = { 0, 1, 2, S, A, B, C }. Τερµατικά Σύµβολα: T = { 0, 1, 2 }. Μη τερµατικά Σύµβολα: N = { S, A, B, C }. Σύνολο Παραγωγών: P = { S C, C 0CAB, S ɛ, BA AB, 0A 01, 1A 11, 1B 12, 2B 22 } Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 19 / 24

Τύποι Γραµµατικών οµής Φράσεως Τύπος Επιτρεπτά Είδη Κανόνων Περιορισµοί 0 Ολα τα είδη 1 l A r l w r, S ɛ l, r V, w V + Αν υπάρχει S ɛ, το S να µην εµφανίζεται στα δεξιά άλλου κανόνα. 2 A w A V \ T, w V 3 A a B, A a, S ɛ A, B V \ T, a T Γλώσσα Τύπου 3: { 0 m 1 n : m, n N }. Γλώσσα Τύπου 2: { 0 n 1 n : n N }. Γλώσσα Τύπου 1: { 0 n 1 n 2 n : n N }. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 20 / 24

Τύποι Γραµµατικών και Γλωσσών Τύπου 3: Κανονικές ( Regular) Γραµµατικές Παράγουν Κανονικές Γλώσσες Τύπου 2: Γραµµατικές χωρίς Συµφραζόµενα (Context-Free) Παράγουν Γλώσσες Χωρίς Συµφραζόµενα Χρησιµοποιούνται για την περιγραφή γλωσσών προγραµµατισµού. Τύπου 1: Γραµµατικές µε Συµφραζόµενα (Context-Free). Κάθε γραµµατική Τύπου t είναι και Τύπου t 1. Μια γλώσσα είναι Τύπου t αν παράγεται από γραµµατική Τύπου t, αλλά όχι από γραµµατική Τύπου t + 1. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 21 / 24

Μηχανές Πεπερασµένων Καταστάσεων Πεπερασµένα Αυτόµατα Απλοϊκές µηχανές που δέχονται σαν είσοδο µία συµβολοσειρά. Σε κάθε βήµα υπολογισµού: 1. ιαβάζουν το επόµενο σύµβολο της συµβολοσειράς εισόδου. 2. Ανάλογα µε το σύµβολο που διαβάζουν, µεταβαίνουν σε µία κατάσταση. Εχουν πεπερασµένο πλήθος καταστάσεων. Εχουν µία αρχική κατάσταση από την οποία εκκινούν. Εχουν µία ή περισσότερες καταστάσεις αποδοσχής. Αποδέχονται την είσοδο, αν στο τέλος του υπολογισµού ϐρίσκονται σε κάποια από αυτές τις καταστάσεις. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 22 / 24

Πεπερασµένα Αυτόµατα - Αναγνωριστές Γλώσσας Ενα αυτόµατο πεπερασµένων καταστάσεων (πεπερασµένο αυτόµατο): αποτελείται από: M = (S, Σ, δ, s 0, F) Πεπερασµένο Σύνολο Καταστάσεων Πεπερασµένο Αλφάβητο Εισόδου Συνάρτηση Μεταβάσεων Αρχική Κατάσταση Σύνολο Καταστάσεων Αποδοχής S Σ δ : S Σ S s 0 S F S Κάθε λέξη εισόδου που αποδέχεται το αυτόµατο ανήκει στη γλώσσα που αναγνωρίζει. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 23 / 24

Παράδειγµα Σύνολο Καταστάσεων: S = { s 0, s 1, s 2, s 3 }. Αλφάβητο Εισόδου: Σ = { 0, 1 }. Αρχική Κατάσταση: s 0. Σύνολο Καταστάσεων Αποδοχής: F = { s 0, s 3 }. Συνάρτηση Μεταβάσεων: δ : S Σ S, όπως απεικονίζεται παρακάτω. δ 0 1 s 0 s 0 s 1 s 1 s 0 s 2 s 2 s 0 s 0 s 3 s 2 s 1 s 0 0 s 1 1 1 0 1 0, 1 0 s 2 s 3 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 24 / 24