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

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

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

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

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

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

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

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

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

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

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

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

Κατηγορικές Γραµµατικές

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

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

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

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

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

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

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

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

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

Θέματα Μεταγλωττιστών

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Λογισμικό Συστήματος. Κλειώ Σγουροπούλου

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

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

CSC 314: Switching Theory

Θέματα Μεταγλωττιστών

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

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

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

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

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

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

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

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

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

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

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 4 ο : Συντακτική ανάλυση. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος:

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

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

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

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

«Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 3 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΣΥΝΤΑΞΗ: ΟΡΘΟΛΟΓΙΚΗ ΠΡΟΣΕΓΓΙΣΗ (FORMAL SYNTAX)

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

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

Απάντηση: (func endfunc)-([a-za-z])+

Μεταγλωττιστές. Εργαστήριο 5. Εισαγωγή στο BISON. Γεννήτρια Συντακτικών Αναλυτών. 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση

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

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

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Θεωρία Υπολογισμού και Πολυπλοκότητα ΕΙΣΑΓΩΓΉ ΣΤΟ ΜΑΘΗΜΑ

Κεφάλαιο 3 : Σύνταξη Γλωσσών Προγραμματισμού

Παραλλαγές και επεκτάσεις αυτομάτων I

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

ΚΕΦΑΛΑΙΟ 6: Γλώσσες. 6.1 Ιστορική εξέλιξη 6.4 Υλοποίηση γλώσσας. Κεφάλαιο 6: «Γλώσσες Προγραµµατισµού»

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

Εισαγωγή. Γλώσσες προγραμματισμού Μεταγλωττιστές Αναγκαιότητα και ιστορική αναδρομή

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 4 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Πίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες

aab aabb aaabb aaaabb aaaabb aaaabb

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 9 ο

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

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

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

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών

Τυπικές Γραμματικές και Άλλα Αυτόματα

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές

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

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

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

Υπολογίσιμες Συναρτήσεις

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

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση

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

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

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

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

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

Ασκήσεις μελέτης της ενότητας «Συντακτική Ανάλυση»

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

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

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

Transcript:

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

Φάσεις μεταγλώττισης Αρχικό Πρόγραμμα Λεκτική Ανάλυση λεκτικές μονάδες Πίνακας Συμβόλων Τελικό Πρόγραμμα Συντακτική Ανάλυση συντακτικό δένδρο Σημασιολογική Ανάλυση συντακτικό δένδρο Παραγωγή Ενδιάμεσου Κώδικα ενδιάμεσος κώδικας Βελτιστοποίηση Ενδιάμεσου Κώδικα ενδιάμεσος κώδικας Παραγωγή Τελικού Κώδικα τελικός κώδικας Βελτιστοποίηση Τελικού Κώδικα Χειριστής Σφαλμάτων

Συντακτική Ανάλυση (1/2)

Συντακτική Ανάλυση (2/2)

Γραμματική Σύστημα παραγωγής συμβολοσειρών G, που αποτελείται από μια τετράδα (T,N,P,S) T τερματικά σύμβολα (terminals) που αποτελούν το αλφάβητο της γλώσσας. N μη-τερματικά σύμβολα (non-terminals) P κανόνες παραγωγής (production rules) της μορφής α β, όπου α και β (Τ Ν)* S αρχικό σύνολο, το οποίο είναι στοιχείο το Ν (start symbol)

Γραμματικές Ας υποθέσουμε, ότι p και q είναι δύο συμβολοσειρές, κάθε μία από τις οποίες αποτελείται * από μηδέν ή περισσότερα μη τερματικά ή/και τερματικά σύμβολα ( p, q V ). Αν η συμβολοσειρά q προκύπτει από την χρησιμοποιώντας μία και μόνο μία παραγωγή της γραμματικής G, τότε λέμε ότι η p παράγει άμεσα την q και αυτό γράφεται ως p q. Έτσι, αν p xwz και q xyz και η w y είναι μία παραγωγή της γραμματικής G, τότε p q. Αν η συμβολοσειρά προκύπτει από την p με εφαρμογή n παραγωγές της γραμματικής G, με n 1, τότε λέμε ότι η p παράγει την q με μία ή περισσότερες παραγωγές και αυτό γράφεται ως p + q. Αν η συμβολοσειρά q προκύπτει από την p, όπως προηγουμένως, μετά από n 0 παραγωγές, τότε απλά λέμε ότι η p παράγει την q και αυτό γράφεται ως p q. q p

Αναπαραγωγή συμβολοσειράς Η διαδικασία αρχίζει με το αρχικό σύμβολο. Αντικαθιστούμε μια υποσυμβολοσειρά α της τρέχουσας δ με την β εάν υπάρχει κανόνας παραγωγής α β Αν δ = γαγ' τότε από γαγ' -> γβγ' Όταν η συμβολοσειρά περιέχει μόνο τερματικά σύμβολα, λέμε ότι αυτή παράγεται από την γραμματική.

Αναπαραγωγή συμβολοσειράς. Παράδειγμα 1ο Έστω η γραμματική Τ = {a,b} N = {I,S,U} P = {I asb, S e S as, S bs} S = I T τερματικά σύμβολα (terminals) που αποτελούν το αλφάβητο της γλώσσας. N μη-τερματικά σύμβολα (nonterminals) P κανόνες παραγωγής (production rules) της μορφής α β, όπου α και β (Τ Ν)* S αρχικό σύνολο, το οποίο είναι στοιχείο το Ν (start symbol) Ι asb ab (παραγωγή) Ι asb absb abasb ababb

Αναπαραγωγή συμβολοσειράς. Παράδειγμα 2 ο Έστω η γραμματική Τ = {0,1-9,.,e} N = {Ν,D,Ds,E} P = { Ν DsE, D 0, D 1, D 2, D 3,...,D 9 Ds DDs, Ds D, E eds, E ε} S = Ν Ν 2DsE 24E 24 (παραγωγή) N 4DsE 45E 45eDs 45e6 45e6

Ορισμοί Συμβολοσειρά α Τ* παράγεται από την G όταν υπάρχει μια ακολουθία παραγωγών τέτοια ώστε α 1 = S α n = α και ισχύει α i α i+1 για κάθε i, 0 < i < n Μεταβατικό κλείσιμο α + β Ανακλαστικό Μεταβατικό κλείσιμο α * β Η γραμματική G παράγει την γλώσσα L(G), για την οποία L(G) = {α T* S + α}

Ιεραρχία Chomsky (1/3) Γραμματικές τύπου 0. Γραμματικές τύπου 1 (γραμματικές με συμφραζόμενα context sensitive grammars) Γραμματικές τύπου 2 (γραμματικές χωρίς συμφραζόμενα context free grammars) Γραμματικές τύπου 3 (κανονικές γραμματικές regular grammars)

Ιεραρχία Chomsky (2/3) Γραμματικές τύπου 0. Όλες οι γραμματικές χωρίς περιορισμούς. Γραμματικές τύπου 1 (γραμματικές με συμφραζόμενα context sensitive grammars) Γραμματικές της μορφής α β, έτσι ώστε η συμβολοσειρά α να περιέχει τουλάχιστον ένα μητερματικό σύμβολο και α β.

Ιεραρχία Chomsky (3/3) Γραμματικές τύπου 2 (γραμματικές χωρίς συμφραζόμενα context free grammars) Οι κανόνες παραγωγής έχουν μορφή α β, όπου η συμβολοσειρά α αποτελείται από ένα μη-τερματικό σύμβολο και η β είναι συμβολοσειρά. Γραμματικές τύπου 3 (κανονικές γραμματικές regular grammars) Οι κανόνες παραγωγής έχουν την μορφή Α aβ Α a Α ε A,B μη τερματικά και a τερματικό.

Αναγνωριστές Μια αφηρημένη μηχανή που δέχεται ως είσοδο μια συμβολοσειρά ενός αλφαβήτου και δίνει έξοδο ναι ή όχι. Αναφέρονται και ως αυτόματα. Μηχανή Turing πολυπλοκότερο υπολογιστικό μοντέλο Γραμμικά Περιορισμένη Μηχανή Turing ΜΤ με περιορισμό Μνήμης Αυτόματα Στοίβας Πεπερασμένα Αυτόματα.

Ιεραρχία Chomsky

Γραμματικές και Αναγνωριστικά Μοντέλα Γραμματική Αναγνωριστικά Μοντέλα Γραμματικές τύπου 0. Μηχανή Turing Γραμμικά Περιορισμένη Γραμματικές με συμφραζόμενα Μηχανή Turing Γραμματικές χωρίς συμφραζόμενα Αυτόματα Στοίβας Κανονικές γραμματικές Πεπερασμένα Αυτόματα.

Μετατροπή κανονικής έκφρασης σε γραμματική

Γραμματική Χωρίς Συμφραζόμενα

Γραμματική Χωρίς Συμφραζόμενα

Παράγωγο Δέντρο

Παράγωγο Δέντρο (Παράδειγμα)

Αφαιρετικό Συντακτικό Δέντρο

Σύνταξη και σημασία προγραμμάτων

Σύνταξη και σημασία προγραμμάτων

Σύνταξη και σημασία προγραμμάτων

Σύνταξη και σημασία προγραμμάτων

Σύνταξη και σημασία προγραμμάτων

Σύνταξη και σημασία προγραμμάτων

Σύνταξη και σημασία προγραμμάτων