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

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

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

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

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

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

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

Γραµµατικές για Κανονικές Γλώσσες

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

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

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

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

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

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

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

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

Top Down Bottom Up. Συντακτική Ανάλυση. Συντακτική Ανάλυση για Γραµµατικές χωρίς Συµφραζόµενα (top-down - Earley)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αριθμητικά Συστήματα = 3 x x x x 10 0

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

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

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

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

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

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

Διαδικασιακός Προγραμματισμός

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

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

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

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

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

1. ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΩΝ. α i. (α i β i ) (1.3) όπου: η= το πλήθος ακεραίων ψηφίων του αριθμού Ν. n-1

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

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

Έστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

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

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

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

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

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

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

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

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

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

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

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί

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

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

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

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

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

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

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

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

CSC 314: Switching Theory

Η NTM αποδέχεται αν µονοπάτι στο δέντρο που οδηγεί σε αποδοχή.

Προγραμματισμός Υπολογιστών

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

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

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

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

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

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

Κεφάλαιο 2: Τυπικές γλώσσες

Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ

ΠΛΗ30 ΕΝΟΤΗΤΑ 3: ΚΑΝΟΝΙΚΕΣ ΓΛΩΣΣΕΣ. Μάθηµα 3.2: ηµήτρης Ψούνης

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

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

a = 10; a = k; int a,b,c; a = b = c = 10;

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

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

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΔΙΑΓΩΝΙΣΜΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 2008

Θα χρησιμοποιήσουμε το bison, μια βελτιωμένη έκδοση του yacc. Φροντιστήριο 2ο Εισαγωγή στο YACC. Yacc. Δομή Προγράμματος Yacc

Συντακτικός Αναλυτής. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 11: Μη Ασυμφραστικές Γλώσσες

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

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

Συστήματα Αρίθμησης. Συστήματα Αρίθμησης 1. PDF created with FinePrint pdffactory Pro trial version

Εισαγωγή στην επιστήµη των υπολογιστών. Υπολογιστές και Δεδοµένα Κεφάλαιο 3ο Αναπαράσταση Αριθµών

HY340, 2010 Α. Σαββίδης. Slide 3 / 43. Slide 4 / 43

Transcript:

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

Γραµµατικές Χωρίς περιορισµούς Με συµφραζόµενα Χωρίς συµφραζόµενα Κανονικές Πεπερασµένων επιλογών Κατηγορικές Ενεργοποίησης

Γραµµατικές G = { T, N, P, S } Τ: αλφάβητο τερµατικών συµβόλων Ν: αλφάβητο µητερµατικών συµβόλων T N = P: πεπερασµένο σύνολο κανόνων παραγωγής P ( T N ) * x ( T N ) * συµβολισµός: α -> β S: αρχικό σύµβολο

Ιεραρχία Chomsky Γλώσσες Γραµµατικές Μηχανές Κανονικές Γλώσσες Κανονικές Γραµµατικές Πεπερασµένα αυτόµατα Γλώσσες Χωρίς Συµφραζόµενα Γλώσσες Με Συµφραζόµενα Υπολογίσιµες γλώσσες Γραµµατικές Χωρίς Συµφραζόµενα Γραµµατικές Με Συµφραζόµενα Γραµµατικές χωρίς περιορισµούς Μη-Ντετερµινιστικά Αυτόµατα Με Στοίβα Γραµµικά Πεπερασµένα Αυτόµατα Μηχανή Turing

Γραµµατικές χωρίς περιορισµούς Γραµµατικές χωρίς περιορισµούς τύπου 0 προτασιακής σύνταξης κανόνες της µορφής σ -> τ σ V +, V = T N τ V * οι γραµµατικές αυτές είναι δύσκολο να συνταχθούν και ο τρόπος αυτός παράστασης δεν είναι φιλικός προς τον άνθρωπο. Οι πρακτικέςτουςεφαρµογές είναι ελάχιστες έως ανύπαρκτες

Γραµµατικές µε συµφραζόµενα Γραµµατικές µε συµφραζόµενα τύπου 1 κανόνες της µορφής ααβ -> αxβ Α Ν x V + α,β V * κατ εξαίρεση: επιτρέπεται το S -> εώστεναπαράγεταιηκενήσυµβολοσειρά αρκεί το S να µην υπάρχει σε δεξί µέλος κανόνα

Γραµµατικές µε συµφραζόµενα Ισοδύναµη µορφή γραµµατικών µε συµφραζόµενα, καλούνται µονότονες γραµµατικές κανόνες της µορφής α -> β α,β V + η α περιέχει τουλάχιστόν ένα µη τερµατικό σύµβολο α β κατ εξαίρεση: επιτρέπεται το S -> ε ώστεναπαράγεταιηκενήσυµβολοσειρά αρκεί το S να υπάρχει µόνο σε δεξί µέλος κανόνα

Γραµµατικές µε συµφραζόµενα Παράδειγµα κατασκευής γραµµατικής τύπου 1 θα κατασκευάσουµε γραµµατική για τη γλώσσα: α n b n c n αποδεικνύεται ότι δε µπορεί να κατασκευαστεί γραµµατική τύπου 2 για τη γλώσσα αυτή αρχίζοντας από την απλή περίπτωση S -> abc αν προσθέσουµε έναa στην αρχή θα πρέπει να προσθέσουµε κάτι και στο τέλος S -> asq στο τέλος πρέπει να υπάρχει κάτι µε b και c αλλά όχι απλά να προσθέσουµε bc αφού όλα τα b πρέπει να βρίσκονται πριν τα c

Γραµµατικές µε συµφραζόµενα κάτι τέτοιο επιτρέπει το b να είναι πάντα πριν το c bqc -> bbcc πάλι δεν τελειώσαµε αφούταq βρίσκονται δεξιά από τα c, αυτό µπορεί να διορθωθεί µε τον κανόνα cq -> Qc ηγραµµατική ολοκληρώθηκε

Γραµµατικές µε συµφραζόµενα - παράδειγµα S ::= assignments assignments ::= assign ; assignments assignments ::=. \%variable is set assign ::= x := exp (setx) assign ::= y := exp (sety) \% rules for an expression exp ::= [exp] exp ::= exp op exp

Γραµµατικές µε συµφραζόµενα - παράδειγµα \% marks can move at the end (setx) ; ::= ; (setx) (sety) ; ::= ; (sety) (setx) exp ::= exp (setx) (sety) exp ::= exp (sety) (setx) op ::= op (setx) (sety) op ::= op( sety) (setx) [ ::= [ (setx) (sety) [ ::= [ (sety) (setx) ] ::= ] (setx) (sety) ] ::= ] (sety)

Γραµµατικές µε συµφραζόµενα - παράδειγµα (setx) y ::= y (setx) (sety) x ::= x (sety) (setx) x ::= x (setx) (sety) y ::= y (sety) (setx) num ::= num (setx) (sety) num ::= num (sety) (setx) := ::= := (setx) (sety) := ::= := (sety)

Γραµµατικές µε συµφραζόµενα - παράδειγµα \% marks can change positions (setx) (sety) ::= (sety) (setx) (sety) (setx) ::= (setx) (sety) \%use a variable, move at the end exp (setx) ::= x (setx) exp (sety) ::= y (sety)

Γραµµατικές µε συµφραζόµενα - παράδειγµα \% marks can move after the dot (setx). ::=. @ (sety). ::=. @ \% terminal symbols exp ::= num op ::= + - * /

Γραµµατικές χωρίς συµφραζόµενα Γραµµατικές χωρίς συµφραζόµενα - τύπου 2 κανόνες της µορφής Α -> α Α Ν α V * Παράδειγµα <name> ::= tom john harry <sentence> ::= name <list> and <name> <list> ::= <name>, <list> name

Γραµµατικές χωρίς συµφραζόµενα Γραµµατική τύπου LL(1) L: Left to right - αναφέρεται στον τρόπο που σαρώνεται η συµβολοσειρά εισόδου, από τα αριστερά στα δεξιά L: Left most derivation η διαδικασία κατασκευής του συντακτικού δέντρου αντιστοιχεί στην αριστερότερη παραγωγή (1): one look ahead symbol για να επιλέξουµε ανάµεσα σε πιθανούς κανόνες ποιος είναι ο επόµενος κανόνας που πρέπει να εφαρµοσθεί αρκεί να γνωρίζουµε το επόµενο σύµβολο της συµβολοσειράς εισόδου

Γραµµατικές χωρίς συµφραζόµενα Παράδειγµα γραµµατικής τύπου LL(1) Ε -> ΤΕ Ε -> +ΤΕ ε Τ -> FT T -> x FT ε F -> (E) id id -> a b c d Παραγωγή: (a+bxc+bx(a+c))xd

Κανονικές γραµµατικές Κανονικές γραµµατικές τύπου 3 γραµµατικές πεπερασµένων καταστάσεων κανόνες της µορφής Α -> α Α -> ββ Α,Β Ν α Τ {ε} β Τ

Κανονικές γραµµατικές Παράδειγµα S -> a A A -> a A A -> d A A -> ε Παραγωγή: σειρές από α και d που ξεκινούν υποχρεωτικά από α

Γραµµατικές πεπερασµένων επιλογών Γραµµατικές πεπερασµένων επιλογών ή τύπου 4 κανόνες της µορφής Α -> α Α Ν α Τ {ε}

Κατηγορικές Γραµµατικές Attribute Grammars D. Knuth

Κατηγορικές Γραµµατικές Μπορούν να εκφράζουν σηµασιολογικούς κανόνες των γλωσσών προγραµµατισµού Περιγράφουν µία απεικόνιση µιας γλώσσας που περιγράφεται από µία γραµµατική χωρίς συµφραζόµενα σε κάποια ισοδύναµη διαφορετική της µορφή Η µορφή τους είναι εκτελέσιµη. Μπορεί δηλαδή να κατασκευαστεί αυτόµατα ένα πρόγραµµα το οποίο να κάνει ό,τι η κατηγορική γραµµατική περιγράφει Γενικά µπορούν να χρησιµοποιηθούν για περιγραφή υπολογιστικών διαδικασιών καθοδηγούµενες από τη σύνταξη

Ένα παράδειγµα Υπολογισµός ενός δεκαδικού αριθµού εκφρασµένου σε δυαδική µορφή Ηακόλουθηγραµµατική χωρίς συµφραζόµενα περιγράφει έναν δυαδικό αριθµό µε τερµατικά σύµβολα τα 0, 1 και. p1: Z::=L p2: Z::=L.L p3: L::=LB p4: L::=B p5: B::=1 p6: B::=0

Κατηγορήµατα Συσχετίζουµε κάθε µη τερµατικό σύµβολο µε ένα σύνολο από κατηγορήµατα, τα οποία µπορούν να θεωρηθούν σαν µεταφορείς πληροφορίας (µεταβλητές) Κάθε τερµατικό σύµβολο αναπαραστά λέξεις της γλώσσας, κάθε µη τερµατικό σύµβολο σχέσεις ανάµεσα στα τερµατικά σύµβολα Η πληροφορία που αποθηκεύεται στα κατηγορήµατα µπορεί να είναι ο,τιδήποτε µας εξυπηρετεί στη λύση του προβλήµατός µας π.χ. πίνακες συµβόλων, τµήµατα κώδικα, τµήµατακώδικαπου έχει παραχθεί, τύποι εκφράσεων, τιµές σταθερών, µεταβλητές

Το κατηγόρηµα v Κατηγόρηµα v (value): η δεκαδική τιµή της υποσυµβολοσειράς που αναγνωρίζεται από ένα µη τερµατικό σύµβολο. Είναι πραγµατικός αριθµός και αφορά τα µη τερµατικά σύµβολα Z, L, B p1: Z::=L p2: Z::=L.L p3: L::=LB p4: L::=B p5: B::=1 p6: B::=0

Σηµασιολογικοί κανόνες Πέρα από τα κατηγορήµατα σε κάθε κανόνα µπορούµε να αντιστοιχίσουµε σηµασιολογικούς κανόνες Οι σηµασιολογικοί κανόνες είναι εξισώσεις που εκφράζουν το πως σχετίζονται τα κατηγορήµατα µεταξύ τους

Σηµασιολογικοί κανόνες για το v p1: Z::=L Z.v = L.v p2: Z::=L 1.L 2 Z.v = L 1.ν + L 2.v p3: L 0 ::=L 1 B L o.v = L 1.v + B.v p4: L::=B L.v = B.v p5: B::=1 B.v = 1 p6: B::=0 B.v = 2 B.s

Το κατηγόρηµα s Αναπαριστά τη θέση του ψηφίου στον αριθµό Πρέπει να είναι µηδέν αµέσως αριστερά από την τελεία, ένα για το αµέσως αριστερά ψηφίο, δύο για το επόµενο κ.ο.κ Αντίστοιχα πρέπει να είναι -1 για το ψηφίο αµέσως δεξιά από την τελεία, -2 για το πιο δεξία, κ.ο.κ Το πρόβληµα µετατίθεται στη σωστή εκχώρηση τιµής στο s

Σηµασιολογικοί κανόνες για το s Bήµα 1 p1: Z::=L p2: Z::=L 1.L 2 p3: L 0 ::=L 1 B B.s = L 0.s L 1.s = L 0 s + 1 p4: L::=B B.s = L.s p5: B::=1 p6: B::=0

Σηµασιολογικοί κανόνες για το s Bήµα 2 p1: Z::=L L.s = 0 p2: Z::=L 1.L 2 L 1.s =0 p3: L 0 ::=L 1 B B.s = L 0.s L 1.s = L 0 s + 1 p4: L::=B B.s = L.s p5: B::=1 p6: B::=0

Σηµασιολογικοί κανόνες για το s Bήµα 3 p1: Z::=L L.s = 0 p2: Z::=L 1.L 2 L 1.s =0 L 2.s=-L 2.l p3: L 0 ::=L 1 B B.s = L 0.s L 1.s = L 0 s + 1 p4: L::=B B.s = L.s p5: B::=1 p6: B::=0

Το κατηγόρηµα l Αναπαριστά το µήκος της συµβολοσειράς του κατηγορήµατος Χρησιµοποιείται για να δώσει τιµή στο κατηγόρηµα s

Σηµασιολογικοί κανόνες για το l p1: Z::=L p2: Z::=L 1.L 2 L 2.s = -L 2.l p3: L 0 ::=L 1 B L o.l = L 1.l + 1 p4: L::=B L.l = 1 p5: B::=1 p6: B::=0

Η πλήρης κατηγορική γραµµατική

Ένα παράδειγµα εκτέλεσης

Γραµµατικές ενεργοποίησης Υποπερίπτωση των κατηγορικών γραµµατικών Αποδεικνύεται ότι ό,τι µπορεί να περιγράψει µία γραµµατική ενεργοποίησης περιγράφεται και από µία κατηγορική γραµµατική Κώδικας ενεργοποιείται καθώς αναγνωρίζεται η συµβολοσειρά εισόδου

Το παράδειγµα p1: S ::= Z. D p2: Z ::= n B p3: Z ::= ε p4: D ::= n D p5: D ::= ε

Το παράδειγµα int value,dlen; p1: S ::= value=0; dlen=0; Z. D p2: Z ::= n value=value*10+n B p3: Z ::= ε p4: D ::= n dlen++; value=value+n/10 dlen ; D p5: D ::= ε