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

Σχετικά έγγραφα
Στοιχεία Θεωρίας Υπολογισµού (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

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

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

Ορισµός. Εστω συναρτήσεις: 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)

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

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

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

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

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

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

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

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

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

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

Transcript:

Μοντελοποίηση του Υπολογισµού Στοιχεία Θεωρίας Υπολογισµού (): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί); Η µελέτη των ερωτηµάτων αυτων προϋποθέτει ορισµό του υπολογιστή. ηλαδή, ορισµό και κατανόηση της ϕύσης του υπολογισµού. Ισοδύναµα, προϋποθέτει ορισµό της έννοιας του αλγορίθµου. Αφετηρία προς την κατεύθυνση αυτή δίνουν οι εξής παρατηρήσεις: Οι υπολογιστές επεξεργάζονται ακολουθίες συµβόλων. Αποδέχονται/εκτελούν οδηγίες σε καλά ορισµένες τυπικές γλώσσες. Οι οδηγίες αυτές αποτελούνται από ακολουθίες συµβόλων. Οι τυπικές γλώσσες επιτρέπουν την ανάπτυξη υπολογιστικών µοντέλων. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού / 24 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 2 / 24 Αλφάβητο και Λέξεις Πράξεις µε Λέξεις Αλφάβητο: πεπερασµένο, µη κενό σύνολο από σύµβολα. Σ = { 0, } Σ = { a, b, c } Σ = { while, void, int, for, if... } Λέξη/Συµβολοσειρά: πεπερασµένη ακολουθία συµβόλων του αλφαβήτου 0 0, a b b b c a, ένα πρόγραµµα σε C (ή Java, ή C++,... ) Μήκος λέξης: πλήθος συµβόλων της λέξης, συµβολίζεται µε w. Κενή Λέξη: Λέξη µηδενικού µήκους, συµβολίζεται µε ɛ (ή µε λ). Παράθεση των λέξεων x και y: x y ή απλώς xy. Π.χ., παράθεση των 00 και 0 δίνει 000. Επανάληψη της λέξης w k ϕορές: w k = Αντίστροφη w R της λέξης w: (00) R = 00, (abcc) R = ccba. k ϕορές {}}{ w w w. προκύπτει γράφοντας την w «ανάποδα». Παλινδροµική Λέξη: w = w R, π.χ.: (00) R = 00. Για κάθε δύο λέξεις x και y: (x y) R = y R x R. x υπολέξη της w αν: w = y x z. Επιτρέπεται είτε y = ɛ είτε z = ɛ (ή και τα δύο). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 3 / 24 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 4 / 24

Πράξεις σε αλφάβητο Τυπικές Γλώσσες Σ k : σύνολο λέξεων µήκους k 0 που αποτελούνται από σύµβολα του Σ. { 0, }2 = { 00, 0, 0, }. { a, b, c } 2 = { ab, bc, ac, ca, cb, ba }. Παρατήρηση: Σ 0 = {ɛ}, για κάθε αλφάβητο Σ. Σ : σύνολο όλων των λέξεων επί του Σ: Σ = k N Π.χ., { 0, } = { ɛ, 0,, 00, 0, 0,, 000, 00,... }. Σ k Τυπική Γλώσσα L επί του αλφαβήτου Σ: ένα υποσύνολο του Σ. Με άπειρο ή πεπερασµένο πλήθος συµβολοσειρών (λέξεων) - αριθµήσιµο. Παραδείγµατα γλωσσών επί του αλφαβήτου Σ = { 0,, 2 }: { 02, 20, 20, 20, 02, 02 } = Σ 3 { ɛ, 0, 00, 000,... } { w Σ : το τελευταίο ψηφίο του w είναι }. { } = (η κενή γλώσσα). { ɛ } η γλώσσα που περιέχει µόνο την κενή λέξη. Γλώσσα C = { w : w συντακτικά ορθό πρόγραµµα σε C } Κάθε συντακτικά ορθό πρόγραµµα είναι µία λέξη της γλώσσας. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 5 / 24 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 6 / 24 Πράξεις µε Γλώσσες Πράξεις Συνόλων: ένωση, τοµή, διαφορά, συµπλήρωµα,... Παράθεση: L L 2 = L L 2 = { w = x x 2 : όπου x L, x 2 L 2 } Π.χ., αν L = { 0, 00, } και L 2 = { ɛ, }: L L 2 = { 0, 00,, 0, 00, } Παράθεση Γλώσσας µε την ίδια: L 2 = { w = x x 2, για x L και x 2 L } Παράθεση Γλώσσας k φορές: L k = { w = x x 2 x k, για x, x 2,..., x k L } Προσοχή: για κάθε γλώσσα L: L 0 = {ɛ} Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 7 / 24 Πράξεις µε Γλώσσες Παράθεση κάθε (πεπερασµένου) πλήθους λέξεων της L: L = L k (Παρατήρηση: k 0.) k N Παράδειγµα: L = { a, bb } = L = { ɛ, a, bb, abb, bba, aabb, bbaa, abba,... } L = { ɛ } L = { ɛ } Επίσης: L = L = { ɛ } Παράθεση θετικού πεπερασµένου πλήθους λέξεων της L: L + = L k (Παρατήρηση: k.) k Z + Πότε είναι L = L + ; Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 8 / 24

Μέθοδοι Αναπαράστασης Γλωσσών Γραµµατική οµής Φράσεως G = (V, T, S, P) Απαρίθµηση των λέξεών τους, όταν είναι πεπερασµένες. ιατύπωση κοινής χαρακτηριστικής ιδιότητας που έχουν οι λέξεις: L = { w {0, } : w έχει άρτιο πλήθος από } L 2 = { 0 n n : n 0 }. Συνολοθεωρητικές πράξεις επί άλλων γνωστών γλωσσών, π.χ., L L 2. Γραµµατικές: µηχανισµοί παραγωγής λέξεων της γλώσσας. Υπολογιστικές Μηχανές: αποφασίζουν αν µια λέξη ανήκει στη γλώσσα. Αλφάβητο Γραµµατικής, V: περιέχει όλα τα σύµβολα της γραµµατικής. Σύνολο τερµατικών συµβόλων: T V. Οι λέξεις της γλώσσας αποτελούνται µόνο από τερµατικά σύµβολα. Σύνολο µη τερµατικών συµβόλων: N = V \ T. Εχουν ϱόλο «µεταβλητών»: αντικαθίστανται σύµφωνα µε κανόνες. Συµβολίζονται συνήθως µε κεφαλαία γράµµατα. Εναρκτήριο (Αρχικό) Σύµβολο: S N. (µη τερµατικό) Η παραγωγή λέξεων εκκινεί από το S και ακολουθεί κανόνες παραγωγής. Σύνολο Κανόνων Παραγωγής P (V N V ) V. Ενας συντακτικός αναλυτής αποφασίζει αν ένα πρόγραµµα C είναι ορθό. ιµελής σχέση που συσχετίζει λέξεις µε µη τερµατικά, µε άλλες λέξεις. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 9 / 24 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 0 / 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 }. Εστω: w 0 = l z 0 r V και w = l z r V. Αν: z 0 z P, Λέµε ότι: «η w παράγεται άµεσα από την w 0». Γράφουµε: w 0 w. Εστω: w 0, w,..., w n V. Αν: w i w i+, για i = 0,..., n, Λέµε ότι: «η w n παράγεται από την w 0». Γράφουµε: w 0 w n. Γλώσσα Γραµµατικής G: L(G) = { w T : S w } Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού / 24 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 2 / 24

Παραδείγµατα Παράδειγµα () Ποιά γλώσσα παράγει η γραµµατική G = (V, T, S, P), µε:. V = { S, A, a, b }, T = { a, b}, P = {S aa, S b, A aa} 2. V = { 0,, S }, T = { 0, }, P = { S S, S 0 } Να δοθούν γραµµατικές δοµής ϕράσεως που παράγουν τις γλώσσες: 3. { 0 n n : n = 0,, 2,... } 4. { 0 m n : m, n N } 5. { 0 n n 2 n : n N } Ποιά γλώσσα παράγει η γραµµατική 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}. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 3 / 24 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 4 / 24 Παράδειγµα (2) Ποιά γλώσσα παράγει η γραµµατική G = (V, T, S, P) µε: V = { 0,, S }, T = { 0, }, P = { S S, S 0 } Με δοκιµές: Ξεκινώντας έχουµε S 0, εποµένως 0 L(G). Εχουµε επίσης S S. Παράδειγµα (3) { 0 n n n = 0,, 2,... } Παρατηρούµε ότι ɛ L(G) (για n = 0). Στη συνέχεια, χρησιµοποιώντας S 0, συµπεραίνουµε 0 L(G). Εισάγουµε έναν κανόνα S ɛ. Μπορούµε επίσης να συνεχίσουµε µε S S και να λάβουµε S. Συνεχίζοντας µε S 0, συµπεραίνουµε 0 L(G). ιαισθητικά συµπεραίνουµε ότι L(G) = { 0, 0, 0, 0,... } Οι λέξεις µε άρτιο πλήθος από και ένα µοναδικό 0 στο τέλος. Επειδή «πλήθος 0» = «πλήθος των», εισάγουµε τον κανόνα S 0 S. Αποδεικνύεται επαγωγικά ότι η γραµµατική αυτή είναι ορθή. G = ( V = {0,, S}, T = {0, }, S, P = { S ɛ, S 0 S } ) Αυτό αποδεικνύεται επαγωγικά. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 5 / 24 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 6 / 24

Παράδειγµα (4α) { 0 m n m και n είναι µη αρνητικοί ακέραιοι } Μια γραµµατική G = (V, T, S, P) που παράγει τη γλώσσα είναι ως εξής: Αλφάβητο Γραµµατικής G : V = { 0,, S }. Τερµατικά Σύµβολα της G : T = { 0, }. Μη τερµατικά Σύµβολα της G : N = { S }. Παραγωγές της G : P = { S ɛ, S 0S, S S }. Παρατηρούµε ότι παράγεται η λέξη ɛ και επιπλέον για κάθε άλλη παραγωγή πεπερασµένου πλήθους ϐηµάτων έχουµε ένα S διαθέσιµο για αντικατάσταση, είτε µε 0S, είτε µε S (όσες ϕορές επιθυµούµε). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 7 / 24 Παράδειγµα (4β) { 0 m n m και n είναι µη αρνητικοί ακέραιοι } Μια δεύτερη γραµµατική G 2 = (V, T, S, P) που παράγει τη γλώσσα: Αλφάβητο Γραµµατικής G 2 : V = { 0,, S, A }. Τερµατικά Σύµβολα της G 2 : T = { 0, }. Μη τερµατικά Σύµβολα της G 2 : N = { S, A }. Παραγωγές της G 2 : P = { S ɛ, S 0S, S A, S, A A, A } Παράγει ακριβώς την ίδια Ϲητούµενη γλώσσα µε την G που παρουσιάστηκε προηγουµένως. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 8 / 24 Παράδειγµα (5) Τύποι Γραµµατικών οµής Φράσεως { 0 n n 2 n : n N } Παράγεται από τη γραµµατική G = (V, T, S, P), µε: Αλφάβητο: V = { 0,, 2, S, A, B, C }. Τερµατικά Σύµβολα: T = { 0,, 2 }. Μη τερµατικά Σύµβολα: N = { S, A, B, C }. Σύνολο Παραγωγών: P = { S C, C 0CAB, S ɛ, BA AB, 0A 0, A, B 2, 2B 22 } Τύπος Επιτρεπτά Είδη Κανόνων Περιορισµοί 0 Ολα τα είδη 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 n : m, n N }. Γλώσσα Τύπου 2: { 0 n n : n N }. Γλώσσα Τύπου : { 0 n n 2 n : n N }. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 9 / 24 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 20 / 24

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