Μεταγλωττιστές Ενότητα 3: Τυπικές γλώσσες (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα του ΤΕΙ Δυτικής Μακεδονίας και της Ανώτατης Εκκλησιαστικής Ακαδημίας Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Τυπικές γλώσσες (Μέρος 2 ο )
Σκοποί ενότητας Σκοπός της ενότητας είναι η περιγραφή των τυπικών γλωσσών. 5
Περιεχόμενα ενότητας Κανονικές εκφράσεις. Επεκτάσεις κανονικών εκφράσεων. Ασκήσεις. 6
Κανονικές εκφράσεις (1/3) Πίνακας 1. Κανονικές εκφράσεις. Κανονική Έκφραση Γλώσσα Περιγραφή α { α } Σύνολο που αποτελείται από τη συμβολοσειρά α ε ή e { } Σύνολο που περιέχει το κενό σύμβολο d f L(d) L(f) Διάζευξη Συμβολοσειρές και από τις 2 γλώσσες 7
Κανονικές εκφράσεις (2/3) Πίνακας 1 (Συνέχεια). Κανονικές Εκφράσεις. Κανονική Έκφραση df Γλώσσα L(d)L(f) {vw v L(d),w L(f)} Παράθεση d* L(d)* { } {vw v L(d), w L(d )} Κλειστότητα ή Επανάληψη Περιγραφή Συμβολοσειρές που δημιουργούνται παραθέτοντας μία συμβολοσειρά από την πρώτη γλώσσα με μία συμβολοσειρά από τη δεύτερη γλώσσα. Κάθε συμβολοσειρά της γλώσσας είναι μία παράθεση οποιουδήποτε αριθμού από συμβολοσειρές της γλώσσας του d 8
Κανονικές εκφράσεις (3/3) Προτεραιότητα. 1. Επανάληψη. 2. Παράθεση. 3. Διάζευξη. Αριστερά προσεταιριστικές. Για τυχόν αλλαγή στην προτεραιότητα απαιτούνται παρενθέσεις. 9
Επεκτάσεις κανονικών εκφράσεων (1/4) Πίνακας 2. Επεκτάσεις κανονικών εκφράσεων. Έκφραση Περιγραφή. Οποιοσδήποτε χαρακτήρας εκτός από τον χαρακτήρα αλλαγής γραμμής \n Αυτή η έκφραση περιγράφει οποιουσδήποτε χαρακτήρες εκτός των «αβγ». [^αβγ] To ^ χρησιμοποιείται πριν από μία ομάδα χαρακτήρων που περικλείεται σε αγκύλες και δηλώνει το συμπλήρωμα των χαρακτήρων της ομάδας. 10
Επεκτάσεις κανονικών εκφράσεων (2/4) Πίνακας 2 (Συνέχεια). Επεκτάσεις κανονικών εκφράσεων. Έκφραση Περιγραφή β+ Τουλάχιστον μία εμφάνιση του β β? Προαιρετική εμφάνιση του β β{i} β{i, j} Ακριβώς i εμφανίσεις του β Από i ως j εμφανίσεις του β 11
Επεκτάσεις κανονικών εκφράσεων (3/4) Πίνακας 2 (Συνέχεια). Επεκτάσεις κανονικών εκφράσεων. Έκφραση α-ω Διάστημα χαρακτήρων. Περιγραφή Εναλλακτικά μπορεί να γραφτεί και ως α β γ... ω. [αβγ] ^κ Tαύτιση με έναν από τους χαρακτήρες της αγκύλης Εναλλακτικά μπορεί να γραφτεί και ως α β γ. Αναγνωρίζει την έκφραση κ μόνο μετά από χαρακτήρα νέας γραμμής 12
Επεκτάσεις κανονικών εκφράσεων (4/4) Πίνακας 2 (Συνέχεια). Επεκτάσεις κανονικών εκφράσεων. Έκφραση κ$ κ/δ Περιγραφή Αναγνωρίζει την έκφραση κ όταν ακολουθείται από χαρακτήρα νέας γραμμής. Αναγνωρίζει την έκφραση κ μόνο αν αυτή ακολουθείται από την έκφραση δ { Tαύτιση με το χαρακτήρα { \n Aφαιρείται από το χαρακτήρα n η ειδική σημασία του 13
Ασκήσεις (1/5) Έστω το αλφάβητο Σ= {α, β, γ}. Να δημιουργηθούν οι κανονικές εκφράσεις που αναγνωρίζουν: Το «α» ή το «β» ή το «γ». Καμία ή περισσότερες εμφανίσεις του «β». Καμία ή περισσότερες εμφανίσεις του «β» ή καμία ή περισσότερες εμφανίσεις του «γ». Καμία ή περισσότερες εμφανίσεις του «βγ». 14
Ασκήσεις (2/5) Να δημιουργηθούν οι κανονικές εκφράσεις που αναγνωρίζουν (Συνέχεια): Ένα μοναδικό «α» που ακολουθείται από κανένα ή περισσότερα «γ». Τουλάχιστον ένα «γ». Ένα μόνο «α» που ακολουθείται από ζυγό αριθμό εμφανίσεων του «γ». Μονός αριθμός από «β». 15
Ασκήσεις (3/5) Να δημιουργηθούν οι κανονικές εκφράσεις που αναγνωρίζουν (Συνέχεια): Οποιοσδήποτε συνδυασμός των «β» και «γ». Λέξεις του αλφαβήτου που περιέχουν το πολύ 2 α. 16
Ασκήσεις (4/5) Έστω το αλφάβητο Σ= {A...Z, α...z, 0 9, _}. Να δημιουργηθεί η κανονική έκφραση που αναγνωρίζει λέξεις που: Ξεκινούν με γράμμα. Τελειώνουν με γράμμα. Ξεκινούν με αριθμό. Τελειώνουν με αριθμό. Δεν περιέχουν συνεχόμενα _. 17
Ασκήσεις (5/5) Δημιουργείστε τις κατάλληλες κανονικές εκφράσεις: Μία κανονική έκφραση που να αναγνωρίζει όλους τους δεκαδικούς αριθμούς. Μία κανονική έκφραση που να αναγνωρίζει που να αναγνωρίζει όλους τους αριθμούς που έχουν τιμή 23. Μία κανονική έκφραση που να αναγνωρίζει που να αναγνωρίζει όλους τους αριθμούς που δεν έχουν τιμή 45. Μία κανονική έκφραση που να αναγνωρίζει που να αναγνωρίζει όλους τους αριθμούς που είναι μεγαλύτεροι από το 12. 18
Κανονικές εκφράσεις - Συνέχεια Κανονική Έκφραση Γλώσσα (1/3) Πίνακας 3. Άλλες κανονικές εκφράσεις. Περιγραφή α { a } Το σύνολο που αποτελείται από το string α ε ή e { } Το σύνολο που περιέχει το κενό σύμβολο s t L(s) L(t) Διάζευξη Συμβολοσειρές και από τις 2 γλώσσες 19
Κανονικές εκφράσεις - Συνέχεια Κανονική Έκφραση st Γλώσσα (2/3) Πίνακας 3 (Συνέχεια). Άλλες κανονικές εκφράσεις. L(s)L(t) {vw v L(s),w L(t)} Παράθεση s* L(s)* { } {vw v L(s), w L(s )} Κλειστότητα ή Επανάληψη Περιγραφή Συμβολοσειρές που δημιουργούνται παραθέτοντας ένα string από την πρώτη γλώσσα με ένα string από τη δεύτερη γλώσσα. Κάθε string της γλώσσας είναι μία παράθεση οποιουδήποτε αριθμού από strings της γλώσσας του s 20
Κανονικές εκφράσεις - Συνέχεια Προτεραιότητα. 1. Επανάληψη. 2. Παράθεση. 3. Διάζευξη. (3/3) Επίσης είναι αριστερά προσεταιριστικές. 21
Βιβλιογραφία 1. «Μεταγλωττιστές γλωσσών Προγραμματισμού: Θεωρία και Πράξη», Λάζος, Κ.Ε., Κατσαρός και Π.Θ., Καραΐσκος, Ζ.Κ. (2004), Εκδόσεις Θεσσαλονίκη, [ISBN:960-87723-4-6]. 2. «Μεταγλωττιστές», Παπασπύρου, Ν.Σ. και Σκορδαλάκης, Ε.Σ (2002), Εκδόσεις Συμμετρία, 2002, [ISBN: 978-960-266-135-2]. 22
Τέλος Ενότητας