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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 11 : Γραμματικές χωρίς συμφραζόμενα. Αλέξανδρος Τζάλλας

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

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

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

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

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

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

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

Υπολογιστικά & Διακριτά Μαθηματικά

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

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

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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Υπολογιστικά & Διακριτά Μαθηματικά

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

HEAD INPUT. q0 q1 CONTROL UNIT

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 9 : Κανονικές Εκφράσεις. Αλέξανδρος Τζάλλας

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

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

Περιεχόμενα Τι περιγράφει ένα ΣΔ ΣΔ και παραγωγές Θεωρία Υπολογισμού Ενότητα 15: Συντακτικά Δέντρα Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ. Π.

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

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 8 : Αυτόματα NFA - DFA. Αλέξανδρος Τζάλλας

Μαθηματικά. Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

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

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ. ΕΝΟΤΗΤΑ: Διανυσματικοί Χώροι (1) ΔΙΔΑΣΚΩΝ: Βλάμος Παναγιώτης ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

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

Μαθηματικά. Ενότητα 7: Μη Πεπερασμένα Όρια. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

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

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

Οικονομικά Μαθηματικά

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 1 : Σύνολα & Σχέσεις (1/2) Αλέξανδρος Τζάλλας

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

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

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

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

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

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

Μαθηματικά. Ενότητα 2: Δεκαδικοί αριθμοί, κλάσματα, δυνάμεις, ρίζες και ποσοστά. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Θεωρία Υπολογισμού. Ενότητα 7 : Ντετερμινιστικά Πεπερασμένα Αυτόματα, Κανονικές Πράξεις. Αλέξανδρος Τζάλλας

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

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

Υπολογιστικά & Διακριτά Μαθηματικά

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Μαθηματικά. Ενότητα 2: Διαφορικός Λογισμός. Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

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

Υπολογιστικά & Διακριτά Μαθηματικά

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

Μαθηματικά Ενότητα 11: Θεώρημα Μέσης Τιμής Μονοτονία Συνάρτησης

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

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

Ειδικά Θέματα Προγραμματισμού

Transcript:

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

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

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

Τυπικές γλώσσες (Μέρος 1 ο )

Σκοποί ενότητας Σκοπός της ενότητας είναι η περιγραφή των τυπικών γλωσσών. 5

Περιεχόμενα ενότητας (1/2) Ορισμοί. Γλώσσες. Γραμματικές. Ιεραρχία Chomsky. Αναγνωριστές. Κανονικές Εκφράσεις. 6

Περιεχόμενα ενότητας (2/2) Πεπερασμένα Αυτόματα. Ντετερμινιστικά Πεπερασμένα Αυτόματα. 7

Ορισμοί (1/7) Αλφάβητο: Ένα οποιοδήποτε µη κενό και πεπερασµένο σύνολο Σ αποτελούµενο από σύµβολα. Παραδείγματα. { 0, 1 }: δυαδικό αλφάβητο. { Α, Β, Γ,, Ω }: ελληνικό αλφάβητο. Σύμβολο του αλφαβήτου: Κάθε στοιχείο ενός αλφαβήτου Σ. 8

Ορισμοί (2/7) Συµβολοσειρά. Μία πεπερασµένη παράθεση από σύµβολα του αλφαβήτου. Παραδείγματα. 0001100110. ΑΒΒΓΑΒΒΓ. Οι συµβολοσειρές θα παριστάνονται µε µικρά ελληνικά γράμματα. 9

Ορισμοί (3/7) Κενή Συμβολοσειρά: Η συµβολοσειρά που δεν περιέχει κανένα σύµβολο και παριστάνεται µε το σύμβολο ε. Μήκος συμβολοσειράς. Ο αριθµός των συµβόλων που την αποτελούν και συμβολίζεται µε. παραδείγματα. 0001100110 =10. ΑΒΒΓΑΒΒΓ =8. 10

Ορισμοί (4/7) Το σύνολο των συμβολοσειρών ενός αλφαβήτου με μήκος n συμβολίζεται με Σ n. Το σύνολο όλων των συμβολοσειρών ενός αλφαβήτου συμβολίζεται με Σ*. 11

Ορισμοί (5/7) Παράθεση δύο συμβολοσειρών α και β: Αποτελείται από όλα τα σύμβολα της α ακολουθούμενα από όλα τα σύμβολα της β. Συμβολισμός: α.β ή αβ. Παράδειγμα: α n = ααα α. ή πιο αυστηρά: α 0 = ε, α n+1 = α α n. 12

Ορισμοί (6/7) Πρόθεµα (prefix). Η α ονοµάζεται πρόθεµα της β εάν: Όλα τα στοιχεία της α εµφανίζονται µε τη σειρά στην αρχή της β. Επίθεµα ή κατάληξη (suffix). Η α ονοµάζεται επίθεµα της β εάν: Όλα τα στοιχεία της α εµφανίζονται µε τη σειρά στο τέλος της β. 13

Ορισμοί (7/7) Υποσυµβολοσειρά (substring). Η α ονοµάζεται υποσυµβολοσειρά της β εάν: Όλα τα στοιχεία της α εµφανίζονται µε τη σειρά στο εσωτερικό της β. 14

Γλώσσες (1/3) Γλώσσα επί του αλφαβήτου Σ: Κάθε σύνολο συµβολοσειρών του Σ, δηλαδή κάθε υποσύνολο του Σ*. Παραδείγματα. L 1 = {a n b 2 n n N}. L 2 = {abba}. L 3 = {x x: τα έγκυρα προγράμματα Pascal}. L 4 = {x x: έγκυρες προτάσεις στα ελληνικά}. 15

Γλώσσες (2/3) 16

Γλώσσες (3/3) 17

Γραμματικές (1/6) 18

Γραμματικές (2/6) Γραμματική (Συνέχεια). P: Πεπερασμένο σύνολο κανόνων παραγωγής. Οι κανόνες παραγωγής είναι διατεταγμένα ζεύγη (α,β) συμβολοσειρών του αλφαβήτου Τ Ν. P ( T N ) * x ( T N ) * Συµβολισµός: α -> β. S: αρχικό σύµβολο της γραμματικής. 19

Γραμματικές (3/6) Διαδικασία παραγωγής συμβολοσειρών από τη γραμματική: Αρχίζουμε με τη συμβολοσειρά που περιέχει μόνο το αρχικό σύμβολο. Από την τρέχουσα συμβολοσειρά παράγουμε μία καινούργια. Αντικαθιστώντας κάποια συμβολοσειρά της Που αντιστοιχεί σε αριστερό μέλος κανόνα, με το αντίστοιχο δεξιό μέλος. Επαναλαμβάνουμε όσες φορές χρειαστεί. 20

Γραμματικές (4/6) Διαδικασία παραγωγής συμβολοσειρών από τη γραμματική (Συνέχεια): Όταν καταλήξουμε σε συμβολοσειρά που να αποτελείται μόνο από τερματικά σύμβολα: Λέμε ότι αυτή η συμβολοσειρά παράγεται από τη γραμματική. 21

Γραμματικές (5/6) Κάθε γραµµατική G=(T,N,P,S) ορίζει µία γλώσσα L(G) T *. Λέµε ότι η γραµµατική παράγει τη γλώσσα και ορίζεται ως L(G) = { α T * S + α }. Το σύμβολο +. Σημαίνει ότι η συµβολοσειρά παράγεται σε ένα ή περισσότερα βήματα. 22

Γραμματικές (6/6) Παραγωγή σε µηδέν βήµατα α β. Σημαίνει α = β. Μία γλώσσα λέγεται τυπική (formal). Όταν υπάρχει γραµµατική που την παράγει. 23

Ιεραρχία Chomsky (1/4) Κατατάσσει τις γραμματικές και τις αντίστοιχες γλώσσες σε τέσσερεις κλάσεις. Γραμματικές τύπου 0. Γραμματικές χωρίς κανένα περιορισμό. Γραμματικές τύπου 1. Λέγονται και γραμματικές με συμφραζόμενα (Context-sensitive grammars). Περιέχει κανόνες της μορφής α->β. 24

Ιεραρχία Chomsky (2/4) Γραμματικές τύπου 1 (Συνέχεια). Η συμβολοσειρά α περιέχει τουλάχιστον ένα μη τερματικό σύμβολο. α β. Κατ εξαίρεση. Επιτρέπεται οι παραγόμενες γλώσσες να περιέχουν την κενή συμβολοσειρά (S->ε). Αρκεί το S να μην υπάρχει σε δεξί μέλος κανόνα. 25

Ιεραρχία Chomsky (3/4) Γραμματικές τύπου 2 ή γραμματικές χωρίς συμφραζόμενα. Context-free grammars. Περιέχει κανόνες της µορφής Α-> α. Α: ένα μη τερματικό σύμβολο. α: συμβολοσειρά. 26

Ιεραρχία Chomsky (4/4) Γραμματικές τύπου 3 ή κανονικές γραμματικές. Regular grammars. Περιέχει κανόνες της µορφής Α -> ε ή Α -> aβ, Α-> a. Α,Β: μη τερματικό σύμβολο. a: τερματικό σύμβολο. 27

Αναγνωριστές (1/4) Αναγνωριστής (recognizer). Μία αφηρημένη μηχανή Μ. Παίρνει ως είσοδο συμβολοσειρές ενός ορισμένου αλφαβήτου Σ. Δίνει ως έξοδο «ναι» ή «όχι». 28

Αναγνωριστές (2/4) Το σύνολο των συμβολοσειρών για τις οποίες η μηχανή απαντά «ναι». Ονομάζεται γλώσσα του αναγνωριστή. Συμβολίζεται με L(M). 29

Αναγνωριστές (3/4) Αφηρημένες μηχανές. Μηχανή Turing. Γραμμικά περιορισμένη μηχανή Turing. Αυτόματα Στοίβας. Περιορισμένα Αυτόματα. 30

Αναγνωριστές (4/4) Πίνακας 1. Αναγνωριστές. n Κλάση Τυπικών Γλωσσών Αντίστοιχος τύπος μηχανών 0 Υπολογίσιμες γλώσσες Μηχανές Turing 1 Γλώσσες με συφραζόμενα Γραμμικά περιορισμένες μηχανές Turing 2 Γλώσσες χωρίς συφραζόμενα Αυτόματα Στοίβας 3 Κανονικές γλώσσες Περιορισμένα Αυτόματα 31

Κανονικές Εκφράσεις (1/7) Παραδοσιακά χρησιµοποιούνται για την περιγραφή των λεκτικών μονάδων µιας γλώσσας προγραμματισμού. Συμβολίζονται με μικρά λατινικά γράμματα. Κάθε κανονική έκφαση r ορίζει µία γλώσσα L(r). 32

Κανονικές Εκφράσεις (2/7) Έστω ένα αλφάβητο Σ. Η κενή συµβολοσειρά είναι µία κανονική έκφραση L(ε)={ε}. Κάθε σύµβολο α του Σ είναι µία κανονική έκφραση L(α)={α}. Αν r και s κανονικές εκφράσεις τοτε η (rs) είναι κανονική έκφραση. Αντιστοιχεί στην παράθεση των r και s. Δηλαδή L(rs)=L(r)L(s). 33

Κανονικές Εκφράσεις (3/7) Έστω ένα αλφάβητο Σ (Συνέχεια). Αν r και s κανονικές εκφράσεις τοτε η (r s) είναι κανονική έκφραση. Αντιστοιχεί στην διάζευξη των r και s, δηλαδή L(r s) = L(r) U L(s). Αν r κανονική έκφραση τοτε η (r*) είναι κανονική έκφραση και αντιστοιχεί. Στο κλείσιµο Kleene της r. Δηλαδή L(r*) = L(r)*. 34

Κανονικές Εκφράσεις (4/7) Χρησιμοποιούνται συχνά οι εξής συντομογραφίες. Οι παρενθέσεις συνήθως παραλείπονται. Μεγαλύτερη προτεραιότητα έχει ο τελεστής * µετά της παράθεσης και µετά της διάζευξης. Ο συµβολισµός r + χρησιµοποιείται για το θετικό κλείσιµο του Kleene. Δηλαδή r + = rr*. Ο συµβολισµός [a,b,c,d] χρησιµοποιείται αντί του α b c d. 35

Κανονικές Εκφράσεις (5/7) Χρησιμοποιούνται συχνά οι εξής συντομογραφίες (Συνέχεια). Ο συμβολισμός r?. Χρησιμοποιείται για να δείξει ότι η έκφραση είναι προαιρετική. Η τελεία. Χρησιμοποιείται για να παραστήσει κάποιο σύµβολο του αλφαβήτου. 36

Κανονικές Εκφράσεις (6/7) Χρησιμοποιούνται συχνά οι εξής συντομογραφίες (Συνέχεια). Το σύμβολο /. Υποδηλώνει ότι ο επόµενος χαρακτήρας που ακολουθεί. Είναι σύµβολο του αλφαβήτου και όχι κάποιος ειδικός χαρακτήρας. Π.χ. η έκφραση /( /) µας περιγράφει την συµβολοσειρά ( ). 37

Κανονικές Εκφράσεις (7/7) Παράδειγμα. [1-9][0-9]* 0] (/.[0-9] + )? ((E e)(+ -)?[0-9] + )? Περιγράφει τις σταθερές κινητής υποδιαστολής χωρίς πρόσηµο της γλώσσας C. 38

Πεπερασμένα Αυτόματα Αφηρημένες μηχανές. Μπορούν να χρησιμοποιηθούν ως αναγνωριστές για κανονικές γλώσσες. Είδη πεπερασμένων αυτομάτων. Τα ντετερμινιστικά πεπερασμένα αυτόματα (ΝΠΑ). Τα μη ντετερμινιστικά πεπερασμένα αυτόματα (ΜΠΑ). Τα μη ντετερμινιστικά πεπερασμένα αυτόματα με μηδενικές μεταβάσεις (ΜΠΑ-ε). 39

Ντετερμινιστικά Πεπερασμένα Αυτόματα (1/3) Ένα ντετερµινιστικό πεπερασµένο αυτόµατο είναι µία διατεταγµένη πεντάδα M=(A,Q,δ,q 0,F) όπου: Α: Το αλφάβητο του αυτόματου. Q : Ένα µη κενό πεπερασµένο σύνολο καταστάσεων. δ: Q x A -> Q η συνάρτηση μετάβασης. q 0 є Q: Η αρχική κατάσταση. F Q: Οι τελικές καταστάσεις. 40

Ντετερμινιστικά Πεπερασμένα Αυτόματα (2/3) Αρχικά το αυτόµατο βρίσκεται στην κατάσταση q o. Από τη συμβολοσειρά εισόδου. Διαβάζεται ένα σύµβολο κάθε φορά. Αν το αυτόµατο βρίσκεται στην κατάσταση q και διαβαστεί το σύμβολο α. Το αυτόµατο µεταβαίνει στην κατάσταση δ(q,α). 41

Ντετερμινιστικά Πεπερασμένα Αυτόματα (3/3) Η διαδικασία συνεχίζεται µέχρι να εξαντληθεί η συμβολοσειρά εισόδου. Αν η κατάσταση στην οποία έχει µεταβεί το αυτόµατο είναι µία από τις καταστάσεις του συνόλου F. Η συµβολοσειρά έχει αναγνωριστεί επιτυχώς. Αλλιώς οδηγούµαστε σε αποτυχία. 42

Βιβλιογραφία 1. «Μεταγλωττιστές γλωσσών Προγραμματισμού: Θεωρία και Πράξη», Λάζος, Κ.Ε., Κατσαρός και Π.Θ., Καραΐσκος, Ζ.Κ. (2004), Εκδόσεις Θεσσαλονίκη, [ISBN:960-87723-4-6]. 2. «Μεταγλωττιστές», Παπασπύρου, Ν.Σ. και Σκορδαλάκης, Ε.Σ (2002), Εκδόσεις Συμμετρία, 2002, [ISBN: 978-960-266-135-2]. 43

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