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

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

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

Εισαγωγή στους Αλγορίθμους

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Εισαγωγή στους Αλγορίθμους

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Μαθηματική Ανάλυση Ι

Μαθηματική Ανάλυση Ι

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Εισαγωγή στους Αλγορίθμους

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Μαθηματική Ανάλυση ΙI

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Μαθηματική Ανάλυση Ι

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

Εισαγωγή στην πληροφορική

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Μηχανολογικό Σχέδιο Ι

Εισαγωγή στον δομημένο προγραμματισμό

Μαθηματική Ανάλυση Ι

Ιστορία της μετάφρασης

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Τεχνολογία και Καινοτομία - Οικονομική Επιστήμη και Επιχειρηματικότητα

Τεχνοοικονομική Μελέτη

Διοικητική Λογιστική

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Διδακτική της Πληροφορικής

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Μαθηματική Ανάλυση Ι

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Μαθηματική Ανάλυση Ι

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

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εκκλησιαστικό Δίκαιο

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Εισαγωγή στην πληροφορική

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Τεχνολογία & Καινοτομία - Αρχές Βιομηχανικής Επιστήμης

ΑΝΑΛΥΣΗ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΩΝ ΚΑΤΑΣΤΑΣΕΩΝ

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Εκκλησιαστικό Δίκαιο

Τεχνοοικονομική Μελέτη

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Βάσεις Περιβαλλοντικών Δεδομένων

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Έννοιες φυσικών επιστημών Ι και αναπαραστάσεις

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Μαθηματική Ανάλυση ΙI

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Λογιστική Κόστους. Ενότητα 4: ΣΥΜΠΕΡΙΦΟΡΑ - ΦΥΣΗ ΚΟΣΤΟΥΣ. Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής

Δομές Δεδομένων Ενότητα 1

Ήπιες και νέες μορφές ενέργειας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

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

Ιστορία της μετάφρασης

Στατιστική Ι. Ενότητα 3: Στατιστική Ι (3/4) Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανολόγων Μηχανικών. Χημεία. Ενότητα 10: Θεωρία μοριακών τροχιακών. Τόλης Ευάγγελος

Ψηφιακή Επεξεργασία Εικόνων

Εισαγωγή στον δομημένο προγραμματισμό

Μαθηματική Ανάλυση Ι

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Διοικητική Λογιστική

ΓΕΝΙΚΗ ΚΑΙ ΑΝΟΡΓΑΝΗ ΧΗΜΕΙΑ

Συστήματα Αναμονής. Ενότητα 5: Ανέλιξη Poisson. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Συστήματα Αναμονής. Ενότητα 3: Στοχαστικές Ανελίξεις. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανολόγων Μηχανικών. Χημεία. Ενότητα 6: Ομοιοπολικός δεσμός. Τόλης Ευάγγελος

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Μηχανολογικό Σχέδιο Ι

Υπολογιστική άλγεβρα Ενότητα 1: Πολυωνυμικές σχέσεις και ταυτότητες, μέρος Ι

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Βέλτιστος Έλεγχος Συστημάτων

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Transcript:

Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 8: Υπολογισιμότητα & Γλώσσες Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ψηφιακά Μαθήματα στο Πανεπιστήμιο Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Περιεχόμενα Υπολογισιμότητα: Το πρόβλημα τερματισμού του Turing. Διατεταγμένα Σύνολα. Γλώσσες: Γραμματικές Δομής Φράσεων. Δημιουργία Προτάσεων. Τύποι Γραμματικών και Γλωσσών. 4

Στόχοι Κατανόηση της έννοιας της υπολογισιμότητας. Εισαγωγή στη θεωρία τυπικών γλωσσών. Κατανόηση των βασικών εργαλείων προσδιορισμού γλωσσών. 5

Υπολογισιμότητα και Τυπικές Γλώσσες Υπάρχουν προβλήματα που δεν μπορούν να λυθούν από υπολογιστή. Τι ακριβώς σημαίνει αυτό;;; 6

Υπολογισιμότητα (1/12) Λέω πάντα ψέματα! 7

Υπολογισιμότητα (2/12) Κουρεύω όσους δεν κουρεύονται μόνοι τους! 8

Υπολογισιμότητα (3/12) Υπάρχουν προβλήματα που δεν μπορούν να λυθούν από υπολογιστή. Μπορούμε να κατασκευάσουμε πρόγραμμα που να ανακαλύπτει αν ένα οποιοδήποτε άλλο πρόγραμμα θα τερματίσει;;; 9

Υπολογισιμότητα (4/12) πρόγραμμα P αν P τερματίζει με είσοδο D πρόγραμμα Τ τυπώνει P+D θα τερματίσει και τερματίζει δεδομένα D Υπάρχει τέτοιο πρόγραμμα Τ; τυπώνει P+D δε θα τερματίσει και τερματίζει αν P δεν τερματίζει με είσοδο D 10

Υπολογισιμότητα (5/12) πρόγραμμα P Έστω ότι το πρόγραμμα Τ υπάρχει αν P τερματίζει με είσοδο D πρόγραμμα Τ Τ δεν τερματίζει δεδομένα D Τ τερματίζει αν P δεν τερματίζει με είσοδο D 11

Υπολογισιμότητα (6/12) πρόγραμμα P αν P τερματίζει με είσοδο P πρόγραμμα Τ Τ δεν τερματίζει δεδομένα P Τ τερματίζει αν P δεν τερματίζει με είσοδο P 12

Υπολογισιμότητα (7/12) πρόγραμμα P πρόγραμμα αντιγραφής πρόγραμμα P + δεδομένα P πρόγραμμα Τ 13

Υπολογισιμότητα (8/12) πρόγραμμα P πρόγραμμα αντιγραφής πρόγραμμα P + δεδομένα P πρόγραμμα Τ πρόγραμμα Q 14

Υπολογισιμότητα (9/12) πρόγραμμα P πρόγραμμα αντιγραφής πρόγραμμα P + δεδομένα P πρόγραμμα Τ πρόγραμμα Q Τι κάνει το Q με είσοδο Q; 15

Υπολογισιμότητα (10/12) αν Q τερματίζει με είσοδο Q πρόγραμμα Q πρόγραμμα Q Q δεν τερματίζει Q τερματίζει αν Q δεν τερματίζει με είσοδο Q 16

Υπολογισιμότητα (11/12) αν Q τερματίζει με είσοδο Q πρόγραμμα Q πρόγραμμα Q Q δεν τερματίζει Q τερματίζει αν Q δεν τερματίζει με είσοδο Q 17

Υπολογισιμότητα (12/12) αν Q τερματίζει με είσοδο Q πρόγραμμα Q πρόγραμμα Q Q δεν τερματίζει Q τερματίζει αν Q δεν τερματίζει με είσοδο Q Η υπόθεση ότι το πρόγραμμα Τ υπάρχει οδηγεί σε αντίφαση! 18

Διατεταγμένα Σύνολα (1/2) Ένα σύνολο είναι μια μη διατεταγμένη συλλογή αντικειμένων. Ένα διατεταγμένο ζεύγος είναι ένα ζεύγος αντικειμένων τοποθετημένων με συγκεκριμένη σειρά. π.χ. (a,b) Ένα διατεταγμένο ζεύγος διαφέρει από ένα σύνολο δύο αντικειμένων κατά δύο τρόπους. Η σειρά των αντικειμένων είναι σημαντική. Δηλ. τα (a,b) και (b,a) είναι διαφορετικά. Μπορούμε να έχουμε το ίδιο αντικείμενο και στις δύο θέσεις. Δηλ. το (a,a) είναι αποδεκτό διατεταγμένο ζεύγος. Μπορεί π.χ. να συμβολίζει τους φοιτητές που πήραν την καλύτερη βαθμολογία στα Μαθηματικά και τη Φυσική. 19

Διατεταγμένα Σύνολα (2/2) Μπορούμε να επεκτείνουμε την έννοια του διατεταγμένου ζεύγους σε δυάδες, τριάδες, κτλ. π.χ. (a,b,c) είναι μια διατεταγμένη τριάδα. Μια διατεταγμένη τριάδα αντικειμένων μπορεί να οριστεί ως ένα διατεταγμένο ζεύγος ((a,b),c) όπου το πρώτο στοιχείο είναι και αυτό ένα διατεταγμένο ζεύγος. Ο ορισμός αυτός μπορεί να επεκταθεί σε n-άδες. Μια διατεταγμένη n-άδα είναι ένα διατεταγμένο ζεύγος όπου το πρώτο συστατικό του είναι μια διατεταγμένη (n-1)-άδα. Στην ουσία μια διατεταγμένη n-άδα είναι ένα διατεταγμένο σύνολο από n στοιχεία. 20

Γλώσσες (1/7) Έστω Α = {a,b,..,x,y,z} το αγγλικό αλφάβητο. Μια λέξη n γραμμάτων είναι μια διατεταγμένη n-άδα των γραμμάτων του αλφαβήτου. π.χ. (((((s,o),l),v),e),r). Μια διατεταγμένη n-άδα εναλλακτικά ονομάζεται ακολουθία, συμβολοσειρά, ή πρόταση. A n είναι το σύνολο όλων των ακολουθιών n γραμμάτων από το σύνολο Α. A * είναι το σύνολο όλων των ακολουθιών από το σύνολο Α. Αντί για το αγγλικό αλφάβητο μπορούμε να θεωρήσουμε το αλφάβητο οποιασδήποτε γλώσσας (είτε φυσικής είτε γλώσσας προγραμματισμού). 21

Γλώσσες (2/7) Αλφάβητο Α = {α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ,υ,φ,χ,ψ,ω}. Λέξη με n γράμματα = διατεταγμένη n-άδα γραμμάτων του Α. Α n = σύνολο όλων των ακολουθιών n γραμμάτων του Α. Α* = σύνολο όλων των ακολουθιών n γραμμάτων του Α για κάθε n=1,2, Παραδείγματα Προτάσεις στην ελληνική γλώσσα B = {α,β,,ω} {Α,Β,,Ω} {.,,,, :,!, ;, _ } Τι_ώρα_είναι; Β* Εντολές σε γλώσσα προγραμματισμού C = {A,B,,Y,Z} {0,1,2,,8,9} {+, -, *, /, ;,., =} X=2*T*Z+10; C* 22

Γλώσσες (3/7) Αλφάβητο Α = {α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ,υ,φ,χ,ψ,ω}. Λέξη με n γράμματα = διατεταγμένη n-άδα γραμμάτων του Α. Α n = σύνολο όλων των ακολουθιών n γραμμάτων του Α. Α* = σύνολο όλων των ακολουθιών n γραμμάτων του Α για κάθε n=1,2, Γενικά μία γλώσσα (επί του αλφαβήτου Α) είναι ένα υποσύνολο του Α* Επομένως ορίζουμε μία γλώσσα ως ένα σύνολο συμβολοσειρών Π.χ. Α={α,β,γ} L 1 = {α, αβ, βγ, αβγ} L 2 = {αβ i γα i i 1} 23

Γλώσσες (4/7) Έστω Α ένα πεπερασμένο σύνολο που αποτελεί το αλφάβητο μιας γλώσσας. Μια γλώσσα επί του αλφάβητου Α είναι ένα υποσύνολο του Α*. Π.χ. Έστω Α={a,b,c}. Τα παρακάτω σύνολα είναι γλώσσες επί του αλφαβήτου Α. L1 = {a,aa,ab,ac,abc,cab}, L2 = {aba,aabaa}, L3 = { }, L4 = {a i cb i i 1}. το a i συμβολίζει μια ακολουθία από i το πλήθος a. 24

Γλώσσες (5/7) Αλφάβητο Α = {α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ,υ,φ,χ,ψ,ω}. Λέξη με n γράμματα = διατεταγμένη n-άδα γραμμάτων του Α. Α n = σύνολο όλων των ακολουθιών n γραμμάτων του Α. Α* = σύνολο όλων των ακολουθιών n γραμμάτων του Α για κάθε n=1,2, Γενικά μία γλώσσα (επί του αλφαβήτου Α) είναι ένα υποσύνολο του Α* Επομένως ορίζουμε μία γλώσσα ως ένα σύνολο συμβολοσειρών L 1 L 2 = περιέχει προτάσεις που ανήκουν στην L 1 ή στην L 2 L 1 L 2 = περιέχει προτάσεις που ανήκουν και στην L 1 και στην L 2 25

Γλώσσες (6/7) Αλφάβητο Α = {α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ,υ,φ,χ,ψ,ω}. Λέξη με n γράμματα = διατεταγμένη n-άδα γραμμάτων του Α. Α n = σύνολο όλων των ακολουθιών n γραμμάτων του Α. Α* = σύνολο όλων των ακολουθιών n γραμμάτων του Α για κάθε n=1,2, Γενικά μία γλώσσα (επί του αλφαβήτου Α) είναι ένα υποσύνολο του Α* Επομένως ορίζουμε μία γλώσσα ως ένα σύνολο συμβολοσειρών 26

Γλώσσες (7/7) Αλφάβητο Α = {α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ,υ,φ,χ,ψ,ω}. Λέξη με n γράμματα = διατεταγμένη n-άδα γραμμάτων του Α. Α n = σύνολο όλων των ακολουθιών n γραμμάτων του Α. Α* = σύνολο όλων των ακολουθιών n γραμμάτων του Α για κάθε n=1,2, Γενικά μία γλώσσα (επί του αλφαβήτου Α) είναι ένα υποσύνολο του Α*. Επομένως ορίζουμε μία γλώσσα ως ένα σύνολο συμβολοσειρών. Ωστόσο οι τρόποι περιγραφής συνόλων που έχουμε δει δεν είναι κατάλληλοι για την περιγραφή γλωσσών. Επιπλέον, δεδομένης της περιγραφής μίας γλώσσας, θέλουμε να εκτελούνται αυτόματα οι ακόλουθες λειτουργίες: παραγωγή συμβολοσειρών της γλώσσας, καθορισμός του αν μία δεδομένη λέξη ανήκει στη γλώσσα ή όχι. 27

Γραμματικές Δομής Φράσεως (1/2) Ξέροντας ότι μια γλώσσα είναι ένα σύνολο συμβολοσειρών, πως μπορούμε να την ορίσουμε; Η πλήρης παράθεση των στοιχείων της απορρίπτεται μια και οι περισσότερες γλώσσες περιέχουν άπειρο πλήθος συμβολοσειρών. Επίσης, για μια μη τετριμμένη γλώσσα είναι εξαιρετικά περίπλοκο να περιγραφούν οι ιδιότητες που κατά μοναδικό τρόπο χαρακτηρίζουν τις συμβολοσειρές της. Για τις περισσότερες εφαρμογές μας ενδιαφέρουν τα εξής: Δεδομένης της περιγραφής μιας γλώσσας, αυτομάτως να δημιουργήσουμε συμβολοσειρές της. Δεδομένης της περιγραφής μιας γλώσσας, να μπορούμε να καθορίσουμε αν κάποια συμβολοσειρά ανήκει στη γλώσσα. 28

Γραμματικές Δομής Φράσεως (2/2) Για να απαντήσουμε σε τέτοια ερωτήματα θα περιγράψουμε γλώσσες χρησιμοποιώντας γραμματικές. Συγκεκριμένα θα μελετήσουμε μια κλάση γραμματικών που ονομάζονται γραμματικές δομής φράσεως. Ας υποθέσουμε ότι περιοριζόμαστε σε ένα υποσύνολο των προτάσεων στα Ελληνικά. Αρχικά θα ορίσουμε τι είναι πρόταση: Μια πρόταση είναι μια φράση-ουσιαστικό ακολουθούμενη από μια φράση-μεταβατικό-ρήμα και από μια ακόμα φράσηουσιαστικό. Μια πρόταση είναι μια φράση-ουσιαστικό ακολουθούμενη από μια φράση-αμετάβατο-ρήμα. 29

Περιγραφή γλώσσας μέσω γραμματικής (1/9) Παραγωγή προτάσεων στα ελληνικά πρόταση φράση-ουσιαστικό που ακολουθείται από φράση-μεταβατικό-ρήμα και ακόμα μία φράση-ουσιαστικό πρόταση φράση-ουσιαστικό που ακολουθείται από φράση-αμετάβατο-ρήμα φράση-ουσιαστικό άρθρο που ακολουθείται από ουσιαστικό φράση-ουσιαστικό ουσιαστικό φράση-μεταβατικό-ρήμα μεταβατικό ρήμα φράση-αμετάβατο-ρήμα αμετάβατο ρήμα που ακολουθείται από επίρρημα φράση-αμετάβατο-ρήμα αμετάβατο ρήμα 30

Περιγραφή γλώσσας μέσω γραμματικής (2/9) Παραγωγή προτάσεων στα ελληνικά ουσιαστικό πρόγραμμα ή υπολογιστής ή αρχείο άρθρο ο ή το ή ένα μεταβατικό ρήμα διαβάζει αμετάβατο ρήμα τρέχει επίρρημα γρήγορα 31

Περιγραφή γλώσσας μέσω γραμματικής (3/9) Παραγωγή προτάσεων στα ελληνικά. Παράδειγμα: «το πρόγραμμα διαβάζει ένα αρχείο». 32

Περιγραφή γλώσσας μέσω γραμματικής (4/9) Παραγωγή προτάσεων στα ελληνικά Παράδειγμα : «το πρόγραμμα διαβάζει ένα αρχείο» πρόταση φράση-ουσιαστικό φράση-μεταβατικό-ρήμα φράση-ουσιαστικό 33

Περιγραφή γλώσσας μέσω γραμματικής (5/9) Παραγωγή προτάσεων στα ελληνικά Παράδειγμα : «το πρόγραμμα διαβάζει ένα αρχείο» πρόταση φράση-ουσιαστικό φράση-μεταβατικό-ρήμα φράση-ουσιαστικό άρθρο ουσιαστικό μεταβατικό ρήμα άρθρο ουσιαστικό 34

Περιγραφή γλώσσας μέσω γραμματικής (6/9) Παραγωγή προτάσεων στα ελληνικά Παράδειγμα : «το πρόγραμμα διαβάζει ένα αρχείο» πρόταση φράση-ουσιαστικό φράση-μεταβατικό-ρήμα φράση-ουσιαστικό άρθρο ουσιαστικό μεταβατικό ρήμα άρθρο ουσιαστικό το πρόγραμμα διαβάζει ένα αρχείο 35

Περιγραφή γλώσσας μέσω γραμματικής (7/9) Παραγωγή προτάσεων στα ελληνικά. Παράδειγμα: «ο υπολογιστής τρέχει γρήγορα». 36

Περιγραφή γλώσσας μέσω γραμματικής (8/9) Παραγωγή προτάσεων στα ελληνικά Παράδειγμα : «ο υπολογιστής τρέχει γρήγορα» πρόταση φράση-ουσιαστικό φράση-αμετάβατο-ρήμα 37

Περιγραφή γλώσσας μέσω γραμματικής (9/9) Παραγωγή προτάσεων στα ελληνικά Παράδειγμα : «ο υπολογιστής τρέχει γρήγορα» πρόταση φράση-ουσιαστικό φράση-αμετάβατο-ρήμα άρθρο ουσιαστικό αμετάβατο-ρήμα επίρρημα ο υπολογιστής τρέχει γρήγορα 38

Γραμματικές Δομής Φράσεως (1/4) Έστω ο ακόλουθος συμβολισμός: πρόταση φράση-ουσιαστικό φράση-μεταβατικό-ρήμα φράση-ουσιαστικό πρόταση φράση-ουσιαστικό φράση-αμετάβατο-ρήμα φράση-ουσιαστικό άρθρο ουσιαστικό φράση-ουσιαστικό ουσιαστικό φράση-μεταβατικό-ρήμα μεταβατικό-ρήμα φράση-αμετάβατο-ρήμα φράση-αμετάβατο-ρήμα επίρρημα φράση-αμετάβατο-ρήμα αμετάβατο-ρήμα άρθρο μια άρθρο ο ουσιαστικό σκύλος ουσιαστικό γάτα μεταβατικό-ρήμα κυνηγά μεταβατικό-ρήμα συναντά αμετάβατο-ρήμα τρέχει επίρρημα αργά επίρρημα γρήγορα 39

Γραμματικές Δομής Φράσεως (2/4) Μερικές προτάσεις της γλώσσας είναι: ο σκύλος συναντά μια γάτα, σκύλος κυνηγά γάτα, μια γάτα τρέχει αργά, ο γάτα κυνηγά μια σκύλος. Μια γραμματική δομής φράσεων αποτελείται από 4 στοιχεία: Ένα σύνολο τερματικών συμβόλων Τα. Ένα σύνολο μη-τερματικών συμβόλων Ν. Ένα σύνολο παραγωγών Ρ. Ανάμεσα σε όλα τα μη-τερματικά σύμβολα του Ν, υπάρχει ένα ειδικό σύμβολο που ονομάζεται αρχικό σύμβολο. 40

Γραμματικές Δομής Φράσεως (3/4) Τα τερματικά σύμβολα στο Τ είναι σύμβολα που χρησιμοποιούνται για να δημιουργηθούν οι προτάσεις της γλώσσας. {μια,ο,σκύλος,γάτα,κυνηγά,συναντά,τρέχει,αργά,γρήγορα} Τα μη-τερματικά σύμβολα στο Ν είναι ενδιάμεσα σύμβολα που χρησιμοποιούνται για να περιγραφεί η δομή των προτάσεων: {πρόταση,φράση-ουσιαστικό,φράση-μεταβατικό-ρήμα,φράσηαμετάβατο-ρήμα,άρθρο,ουσιαστικό, μεταβατικό-ρήμα, αμετάβατο,επίρρημα} Οι παραγωγές είναι γραμματικοί κανόνες που καθορίζουν πως μπορούν να σχηματιστούν προτάσεις της γλώσσας. 41

Γραμματικές Δομής Φράσεως (4/4) Μια παραγωγή είναι της μορφής α β, όπου τα α και β είναι συμβολοσειρές τερματικών και μη-τερματικών συμβόλων. Μια παραγωγή καθορίζει ότι η συμβολοσειρά α μπορεί να μετατραπεί στη συμβολοσειρά β. πρόταση φράση-ουσιαστικό φράση-μεταβατικό-ρήμα φράσηουσιαστικό πρόταση φράση-ουσιαστικό φράση-αμετάβατο-ρήμα κτλ. Το αρχικό σύμβολο είναι ένα ειδικό μη τερματικό σύμβολο το οποίο αρχίζει τη δημιουργία οποιασδήποτε πρότασης στη γλώσσα. στο παράδειγμα είναι η πρόταση. 42

Δημιουργία Προτάσεων (1/3) Εφόσον έχει δοθεί μια γραμματική μπορούμε να δημιουργήσουμε προτάσεις της γλώσσας ως εξής: Αρχίζουμε με το αρχικό σύμβολο ως τρέχουσα συμβολοσειρά τερματικών και μη τερματικών συμβόλων. Αν κάποιο τμήμα της τρέχουσας συμβολοσειράς τερματικών και μη τερματικών συμβόλων ταιριάζει με το αριστερό τμήμα μιας παραγωγής, αντικαθιστούμε το τμήμα αυτό της συμβολοσειράς με το δεξιό τμήμα της παραγωγής. Έστω η τρέχουσα συμβολοσειρά α που αποτελείται από τα τμήματα abc και η παραγωγή b d Μπορούμε να δημιουργήσουμε τη συμβολοσειρά adc 43

Δημιουργία Προτάσεων (2/3) Ο συμβολισμός α adc υποδηλώνει ότι μπορεί η συμβολοσειρά α να μετασχηματιστεί στην adc χρησιμοποιώντας παραγωγές της γραμματικής. Οποιαδήποτε συμβολοσειρά τερματικών συμβόλων που λαμβάνεται μετά από έναν αριθμό επαναλήψεων της παραπάνω διαδικασίας είναι μια πρόταση της γλώσσας. Υπάρχει περίπτωση στην τρέχουσα συμβολοσειρά να μπορούμε να εφαρμόσουμε πάνω από μια παραγωγές. Επίσης μπορεί να καταλήξουμε σε συμβολοσειρά η οποία περιέχει μη τερματικά σύμβολα και στην οποία δε μπορεί να εφαρμοστεί καμία παραγωγή. αδιέξοδο. 44

Δημιουργία Προτάσεων (3/3) Η πρόταση ο σκύλος τρέχει γρήγορα παράγεται ως εξής: πρόταση φράση-ουσιαστικό φράση-αμετάβατο-ρήμα φράση-ουσιαστικό αμετάβατο-ρήμα επίρρημα φράση-ουσιαστικό αμετάβατο-ρήμα γρήγορα φράση-ουσιαστικό τρέχει γρήγορα άρθρο ουσιαστικό τρέχει γρήγορα άρθρο σκύλος τρέχει γρήγορα ο σκύλος τρέχει γρήγορα 45

Γραμματικές Δομής Φράσεως - Παράδειγμα Θέλουμε να κατασκευάσουμε μια γραμματική για τη γλώσσα: L = {aaaa, aabb, bbaa, bbbb}. Μια και υπάρχει πεπερασμένο πλήθος συμβολοσειρών μπορούμε απλά να τις καταγράψουμε: Τ = {a,b} το σύνολο των τερματικών συμβόλων. Ν = {S} το σύνολο των μη τερματικών συμβόλων. Το σύνολο των παραγωγών: {S aaaa, S aabb, S bbaa, S bbbb}. Μπορούμε να απλουστεύσουμε τη γραμματική: Ν = {S,A} το σύνολο των μη τερματικών συμβόλων όπου S το αρχικό σύμβολο. Το σύνολο των παραγωγών: {S ΑΑ, Α aa, Α bb}. 46

Γλώσσες Παράδειγμα 1 (1/2) Παράδειγμα Έχουμε και τις παραγωγές Παράδειγμα 47

Γλώσσες Παράδειγμα 1 (2/2) Παράδειγμα Έχουμε και τις παραγωγές Παράδειγμα Πως θα δημιουργήσουμε τις συμβολοσειρές αβββ, ααββββ, αααββββ ; 48

Γραμματικές δομής φράσεως παράδειγμα Θέλουμε να κατασκευάσουμε μια γραμματική για τη γλώσσα: L = {x x {a,b}*, ο αριθμός των a στο x είναι πολλαπλάσιος του 3}. Τ = {a,b} το σύνολο των τερματικών συμβόλων. Ν = {S,Α,Β} το σύνολο των μη τερματικών συμβόλων όπου S το αρχικό σύμβολο. Το σύνολο των παραγωγών είναι: S bs S b S aa A ba A ab A bb B as B a S bs bbs bbaa bbaba bbabab bbababb bbababbb bbababbas bbababbab 49

Γλώσσες Παράδειγμα 2 (1/7) Θέλουμε να κατασκευάσουμε αριθμητικές παραστάσεις με σύμβολα 50

Γλώσσες Παράδειγμα 2 (2/7) Θέλουμε να κατασκευάσουμε αριθμητικές παραστάσεις με σύμβολα 51

Γλώσσες Παράδειγμα 2 (3/7) Θέλουμε να κατασκευάσουμε αριθμητικές παραστάσεις με σύμβολα π.χ. 52

Γλώσσες Παράδειγμα 2 (4/7) Θέλουμε να κατασκευάσουμε αριθμητικές παραστάσεις με σύμβολα π.χ. 53

Γλώσσες Παράδειγμα 2 (5/7) Παράδειγμα Θέλουμε να κατασκευάσουμε αριθμητικές παραστάσεις με σύμβολα π.χ. 54

Γλώσσες Παράδειγμα 2 (6/7) Θέλουμε να κατασκευάσουμε αριθμητικές παραστάσεις με σύμβολα π.χ. 55

Γλώσσες Παράδειγμα 2 (7/7) Θέλουμε να κατασκευάσουμε αριθμητικές παραστάσεις με σύμβολα π.χ. 56

Γλώσσες Παράδειγμα 3 (1/2) Παράδειγμα Θέλουμε γραμματική για τη γλώσσα Έχουμε και τις παραγωγές Παράδειγμα 57

Γλώσσες Παράδειγμα 3 (2/2) Παράδειγμα Θέλουμε γραμματική για τη γλώσσα Έχουμε και τις παραγωγές Παράδειγμα 58

Τύποι Γραμματικών και Γλωσσών (1/4) Η χρήση γραμματικών για την περιγραφή γλωσσών οδηγεί σε έναν τρόπο κατηγοριοποίησης των γλωσσών. Έστω: Α και Β μη τερματικά σύμβολα. a και b τερματικά σύμβολα. α και β συμβολοσειρές τερματικών και μη τερματικών συμβόλων. Μια γραμματική ονομάζεται γραμματική τύπου 3, αν όλες οι παραγωγές της είναι της μορφής. Α a Α ab Ή ισοδύναμα Α a Α Ba 59

Τύποι Γραμματικών και Γλωσσών (2/4) Μια γραμματική ονομάζεται γραμματική τύπου 2, αν όλες οι παραγωγές της είναι της μορφής. Α α Αυτό σημαίνει ότι οι γραμματικές τύπου 2 έχουν παραγωγές όπου το αριστερό μέρος αποτελείται πάντα από ένα μόνο μη τερματικό σύμβολο. μια γραμματική τύπου 3 είναι και τύπου 2. Μια γραμματική ονομάζεται γραμματική τύπου 1, αν για κάθε παραγωγή της μορφής: α β το μήκος του β είναι μεγαλύτερο ή ίσο με το μήκος του α π.χ. Οι παραγωγές ΑΒc bc και Αa a δεν ικανοποιούν τον περιορισμό. 60

Τύποι Γραμματικών και Γλωσσών (3/4) Μια γραμματική ονομάζεται γραμματική τύπου 0, αν δεν έχει κανέναν περιορισμό Μια γλώσσα ονομάζεται γλώσσα τύπου i (i=0,1,2,3) αν μπορεί να καθοριστεί από μια γραμματική τύπου i, αλλά δε μπορεί να καθοριστεί από μια γραμματική τύπου i+1 π.χ. Η γλώσσα L = {a k b k k 1} είναι μια γλώσσα τύπου 2, γιατί μπορεί να καθοριστεί από τη γραμματική τύπου 2. Α aαb A ab αλλά δε μπορεί να καθοριστεί από μια γραμματική τύπου 3. Αυτό μπορεί να αποδειχθεί χρησιμοποιώντας ΜΠΚ, όπως θα δούμε παρακάτω. 61

Τύποι Γραμματικών και Γλωσσών (4/4) Υπάρχουν γλώσσες που δεν είναι τύπου 0; Ναι, υπάρχουν γλώσσες που δεν μπορούν να καθοριστούν από μια γραμματική δομής φράσεως. Οι γλώσσες προγραμματισμού μπορούν να καθοριστούν; Ναι, οι περισσότερες (σχεδόν όλες) είναι τύπου 2. Πως μπορούμε να καθορίσουμε αν μια δεδομένη συμβολοσειρά ανήκει σε μια γλώσσα η οποία καθορίζεται από μια γραμματική; Το πρόβλημα αυτό είναι πολύ σημαντικό στην κατασκευή μεταφραστών/μεταγλωττιστών για γλώσσες προγραμματισμού. Είναι δύσκολο υπολογιστικά, αλλά υπάρχουν αποδοτικοί αλγόριθμοι. 62

Τέλος Ενότητας 63

Σημείωμα Αναφοράς Copyright, Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών, Στεργίου Κωνσταντίνος. «Διακριτά Μαθηματικά». Έκδοση: 1.0. Κοζάνη 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https: //eclass.uowm.gr/courses/icte257/ 64

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Όχι Παράγωγα Έργα Μη Εμπορική Χρήση 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] h t t p ://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό 65

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 66