Γλώσσες Προγραμματισμού Μεταγλωττιστές
|
|
- Διόνυσος Σπηλιωτόπουλος
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Γλώσσες Προγραμματισμού Μεταγλωττιστές Επαναληπτικό Μάθημα Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου
2 Γλώσσες Προγραμματισμού Γλώσσα προγραμματισμού: Συμβολική περιγραφή υπολογισμών (computations). Προδιαγραφή, οργάνωση και συλλογιστική υπολογισμών. Πρόγραμμα = συμβολική περιγραφή ενός υπολογισμού σε κάποια γλώσσα. Μια γλώσσα προγραμματισμού έχει σαν στόχο να επιτρέπει την εύκολη περιγραφή των υπολογισμών, να εκμεταλλεύεται αποδοτικά την υπολογιστική ισχύ των μηχανών. Ευκολία προέχει της απόδοσης!
3 Φάσεις Μεταγλώττισης Αρχικό Πρόγραμμα Λεκτική Ανάλυση λεκτικές μονάδες Πίνακας Συμβόλων Τελικό Πρόγραμμα Συντακτική Ανάλυση συντακτικό δένδρο Σημασιολογική Ανάλυση συντακτικό δένδρο Παραγωγή Ενδιάμεσου Κώδικα ενδιάμεσος κώδικας Βελτιστοποίηση Ενδιάμεσου Κώδικα ενδιάμεσος κώδικας Παραγωγή Τελικού Κώδικα τελικός κώδικας Βελτιστοποίηση Τελικού Κώδικα Χειριστής Σφαλμάτων
4 Λεκτική Ανάλυση Αποδοχή μιας συμβολοσειράς χαρακτήρων που αποτελούν το αρχικό πρόγραμμα και εξαγωγή των λεκτικών μονάδων (tokens). Οι λεκτικές μονάδες χρησιμοποιούνται σαν είσοδος στην φάση της συντακτικής ανάλυσης. Αποτελούν τερματικά σύμβολα της γλώσσας. Υλοποιείται από τον λεκτικό αναλυτή (lexical analyser, scanner). Αποθήκευση λεκτικών μονάδων στον πίνακα συμβόλων. Ανίχνευση σφαλμάτων Διαγραφή σχολίων, διαστημάτων, κενών γραμμών.
5 Γραμματικές Πώς θα γίνει η περιγραφή των λεκτικών μονάδων και (αργότερα) της σύνταξης μιας γλώσσας; Γραμματικές: Σύστημα παραγωγής συμβολοσειρών G, που αποτελείται από μια τετράδα (T,N,P,S) T τερματικά σύμβολα (terminals) που αποτελούν το αλφάβητο της γλώσσας. N μη-τερματικά σύμβολα (non-terminals) P κανόνες παραγωγής (production rules) της μορφής α β, όπου α και β (Τ Ν)* S αρχικό σύνολο, το οποίο είναι στοιχείο το Ν (start symbol)
6 Ιεραρχία Chomsky Γραμματικές τύπου 0. Γραμματικές τύπου 1 (γραμματικές με συμφραζόμενα context sensitive grammars) Γραμματικές τύπου 2 (γραμματικές χωρίς συμφραζόμενα context free grammars) Γραμματικές τύπου 3 (κανονικές γραμματικές regular grammars)
7 Γραμματικές για Μεταγλωττιστές Γραμματικές τύπου 2 (γραμματικές χωρίς συμφραζόμενα context free grammars) Οι κανόνες παραγωγής έχουν μορφή α β, όπου η συμβολοσειρά α αποτελείται από ένα μη-τερματικό σύμβολο και η β είναι συμβολοσειρά. Γραμματικές τύπου 3 (κανονικές γραμματικές regular grammars) Οι κανόνες παραγωγής έχουν την μορφή Α aβ Α a Α ε A,B μη τερματικά και a τερματικό.
8 Αντιστοιχία Μοντέλων Γεννητικά Μοντέλα Γραμματικές τύπου 0. Γραμματικές με συμφραζόμενα Γραμματικές χωρίς συμφραζόμενα Κανονικές γραμματικές Αναγνωριστικά Μοντέλα Μηχανή Turing Γραμμικά Περιορισμένη Μηχανή Turing Αυτόματα Στοίβας Πεπερασμένα Αυτόματα.
9 Κανονικές Εκφράσεις Χρησιμοποιούνται για την περιγραφή κανονικών γλωσσών. Κομψότερος και λακωνικότερος φορμαλισμός. Αντιστοιχία μεταξύ κανονικών εκφράσεων και κανονικής γραμματικής και πεπερασμένων αυτομάτων. Χρήση από εργαλεία κατασκευής λεκτικών αναλυτών.
10 Κανονικές Εκφράσεις Έστω ένα αλφάβητο Σ, μια κανονική έκφραση (KE) r ορίζει μια γλώσσα L(r) πάνω στο Σ. Αναδρομικός ορισμός Κανονική έκφραση είναι H κενή συμβολοσειρά Κάθε σύμβολο a του Σ L(ε)={ε} L(a) = {a} Η διάζευξη r s L(r s) = L(r) L(s) H παράθεση rs L(rs)=L(r)L(s) Το κλείσιμο Kleene r* L(r*)=L(r)* όπου τα r και s είναι κανονικές εκφράσεις.
11 Επέκταση Κανονικών Εκφράσεων Θετικό κλείσιμο Kleene r+ = rr* Έκφραση εμφανίζεται μία η περισσότερες φορές Μηδέν ή μια εμφανίσεις της r r? = r ε Κλάσεις χαρακτήρων [a,b,c]=a b c Διαστήματα χαρακτήρων [a-z]=a b... z Ειδικό σύμβολο για οποιονδήποτε χαρακτήρα Συνήθως είναι η τελεία Ειδικοί χαρακτήρες παριστάνονται με το σύμβολο \ να προηγείται. \) \( \[
12 Άσκηση Περιγράψτε με κανονική έκφραση συμβολοσειρές που ξεκινούν με το πρόθεμα "func" ή "endfunc" ακολουθούμενο το σύμβολο "-"και από ένα ή περισσότερα γράμματα πχ. func-double, func-computestring, func-a, endfunc-a Απάντηση: (func endfunc)-([a-za-z])+
13 Πεπερασμένα Αυτόματα Αφηρημένες μηχανές που μπορούν να χρησιμοποιηθούν σαν αναγνωριστές σε κανονικές γλώσσες. Ντετερμινιστικά Πεπερασμένα Αυτόματα (ΝΠΑ) Μη-Ντετερμινιστικά Πεπερασμένα Αυτόματα (ΜΠΑ) Μη-Ντετερμινιστικά Πεπερασμένα Αυτόματα με μηδενικές Μεταβάσεις (ΜΠΑ-ε) Όλα τα παραπάνω είναι ισοδύναμα από πλευράς υπολογιστικής ικανότητας.
14 Διαγραμματική Αναπαράσταση (Γράφος Μετάβασης) Συμβολοσειρές που αναγνωρίζει; abb, aabb aaaabbbbb Κανονική Έκφραση a+b+ aa*bb* a 0 1 a b 3 b b a 2 a b
15 Παράδειγμα ΜΠΑ (i) Τι αναγνωρίζει το ακόλουθο αυτόματο; abb abababb ababbaabbabaabb a a b b 3 b
16 Παράδειγμα ΜΠΑ-ε (aa bb)(a b)*b ε a 1 2 a 3 ε a 0 4 b 8 ε b 5 6 b 7 ε b
17 Άσκηση Έστω συμβολοσειρές που αποτελούνται από 0 και 1, όπου κάθε 0 έχει πριν και μετά τουλάχιστον ένα 1. πχ ενώ απορρίπτονται οι 110, 00 και Να δοθεί το αντίστοιχο ντετερμινιστικό πεπερασμένο αυτόματο Η αντίστοιχη κανονική γραμματική Η κανονική έκφραση
18 Απάντηση: ΝΠΑ Α Β Γ 1
19 Απάντηση: Γραμματική και Κανονική Έκφραση Γραμματική S::=1D D::=ε D::=1D D::=01D Κανονική έκφραση 1(1 01)*
20 Άσκηση Έστω συμβολοσειρές με μήκος τουλάχιστον 2 που περιέχουν τουλάχιστον ένα 1, οι οποίες όταν ξεκινούν από 1 τότε η υπόλοιπη συμβολοσειρά πρέπει να έχει άρτιο αριθμό 1, ενώ όταν ξεκινούν από 0 η υπόλοιπη συμβολοσειρά πρέπει να έχει περιττό αριθμό 1, πχ 1011, και 01, 0111, Να δοθεί το αντίστοιχο ντετερμινιστικό πεπερασμένο αυτόματο.
21 Απάντηση 0 1 Β 1 Α 0 C 1 D 0 0 1
22 Γραμματική και Κανονική Έκφραση Κανονική έκφραση: (0 10*1)0*1(0 10*1)* Γραμματική: S::=1B S::=0C B::=0B B::=1C C::=0C C::=1D D::=ε D::=1C D::=0D
23 Αναγωγή Κανονικής Γραμματικής σε ΜΠΑ-ε Έστω μια γραμματική G=(T,N,P,S). Το αντίστοιχο ΜΠΑ-ε (Σ,Q,δ,F) θα έχει: Σ = Τ, το αλφάβητο του ΜΠΑ-ε είναι το αλφάβητο της γραμματικής Q = Ν {q f }, οι καταστάσεις του ΜΠΑ-ε είναι τα μητερματικά σύμβολα της γραμματικής, επαυξημένα με μια ακόμη κατάσταση που είναι η τελική. Για κάθε κανόνα Α aβ δ(α,a)=b Α a δ(α,a)=q f A ε δ(α,ε)=q f F = {q f }, τελική κατάσταση του αυτομάτου.
24 Παράδειγμα Αναγωγής σε ΜΠΑ-ε Έστω η γραμματική Τ = {a,b} N = {I,S,U} P = {I as, S bu U ε S as, S bs U b} S = I Ι a S a b b U b ε q f
25 Αναγωγή ΚΕ σε ΜΠΑ-ε Η αναγωγή γίνεται αναδρομικά με κατάλληλη σύνθεση των ΜΠΑ-ε που αντιστοιχούν σε υποεκφράσεις της αρχικής. Στα επόμενα το Μ(r) είναι το ΜΠΑ-ε που αντιστοιχεί στην έκφραση r.
26 Αναγωγές (i) Κενή συμβολοσειρά ε παράγεται από το αυτόματο Μ(ε): ε q f Κανονική έκφραση που περιέχει ένα σύμβολο a του αλφαβήτου, από το αυτόματο Μ(a): t a q f
27 Αναγωγές (ii) Συμβολοσειρά rs, όπου κάθε υποέκφραση παράγεται από τα αυτόματα Μ(r) και Μ(s) αντίστοιχα, παράγεται από το αυτόματο Μ(rs): M(r) ε M(s) t 1 q f1 t 2 q f2 M(r) M(s) t 1 t 2 q f2
28 Αναγωγές (iii) Συμβολοσειρά r s, όπου κάθε υποέκφραση παράγεται από τα αυτόματα Μ(r) και Μ(s) αντίστοιχα, παράγεται από το αυτόματο Μ(r s): ε M(r) ε t 1 q f1 t q f M(s) ε t 2 q f2 ε
29 Αναγωγές (iv) Συμβολοσειρά r*, όπου κάθε υποέκφραση παράγεται από τα αυτόματα Μ(r) και Μ(s) αντίστοιχα, παράγεται από το αυτόματο Μ(r*): ε t ε M(r) t 1 q f1 q f ε
30 Παράδειγμα Κανονική Έκφραση: (a b)a(aa bb)* ε ε a ε ε a a ε a ε b ε ε b b ε ε
31 Συντακτική Ανάλυση
32 Συντακτικοί Αναλυτές (parsers) Οι ΣΑ που χρησιμοποιούνται στην πράξη αφορούν ένα υποσύνολο των γραμματικών χωρίς συμφραζόμενα. Επιβολή περιορισμών λόγω αποδοτικότητας. Ακόμα και με περιορισμούς εν λόγω γραμματικές καλύπτουν τις ανάγκες των περισσοτέρων γλωσσών προγραμματισμού. Οι από πάνω προς τα κάτω ΣΑ (top-down parers), ευκολότεροι στην κατασκευή και προγραμματίζονται χειρωνακτικά. Οι από κάτω προς τα πάνω (bottom-up parsers), καλύπτουν μια μεγαλύτερη κλάση γλωσσών και κατασκευάζονται συνήθως από αυτοματοποιημένα εργαλεία.
33 Παραγωγές στις Γραμματικές χωρίς Συμφραζόμενα (ΓΧΣ) Παραγωγή: Αντικατάσταση υποσυμβολοσειράς που ταιριάζει με αριστερό μέλος, με το αντίστοιχο δεξιό μέλος του κανόνα παραγωγής. Στις ΓΧΣ κάθε φορά αντικαθίσταται οποιοδήποτε μη-τερματικό σύμβολο που περιέχεται στην συμβολοσειρά. Αριστερότερη παραγωγή: αντικατάσταση πάντα του αριστερότερου μη-τερματικού συμβόλου Δεξιότερη παραγωγή: αντικατάσταση του δεξιότερου μη-τερματικού συμβόλου.
34 Συντακτικό Δένδρο (syntax tree) Τρόπος αναπαράστασης μιας παραγωγής. Το αρχικό μη-τερματικό σύμβολο τοποθετείται στη ρίζα του δένδρου. Κάθε "ενδιάμεσος" κόμβος του δένδρου αναπαριστά ένα μη-τερματικό σύμβολο. Κάθε φύλλο του δένδρου αναπαριστά ένα τερματικό σύμβολο. Οι ακμές από ένα "ενδιάμεσο" κόμβο στους απογόνους του αναπαριστούν την αντικατάσταση του μη-τερματικού συμβόλου βάση ενός κανόνα παραγωγής της γραμματικής.
35 Παράδειγμα (II.1) P={ Stmt if ( Expr ) then Stmt Stmt while ( Expr ) Stmt Stmt id := id ; Stmt id := num ; Stmt begin StmtList end StmtList Stmt StmtList Stmt SmtList Expr id Op id Expr id Op num Op > Op < } if ( Expr ) Stmt then if (id > id) then id := id ; Stmt id Op id id id := ; >
36 'Ασκηση Έστω η γραμματική και η συμβολοσειρά αα +αα** S::= SS+ SS* a Δώστε την αριστερότερη παραγωγή της συμβολοσειράς. Δώστε την δεξιότερη παραγωγή της συμβολοσειράς Δώστε το συντακτικό δένδρο της συμβολοσειράς για την συγκεκριμένη γραμματική. Απάντηση S=>SS*=>SS+S*=>aS+S*=>aa+S*=> aa+ss**=>aa+as**=>aa+aa** S=>SS*=>SSS**=>SSa**=>Saa**=> SS+aa**=>Sa+aa**=>aa+aa**
37 Συντακτικό Δένδρο S S S * S S + S S * a a a a
38 Διφορούμενες Γραμματικές Όταν μια συμβολοσειρά μπορεί να αντιστοιχεί σε δύο συντακτικά δένδρα για μια γραμματική τότε η γραμματική ονομάζεται διφορούμενη. Για παράδειγμα: E::=E"+"E E"-"E Ε"*"Ε Ε"/"Ε D D::="1" "2" "3""... "9" "0" Ε Ε Συμβολοσειρά: Ε Ε + E D 1 D 2 + E D 3 E D 1 + Ε Ε + E D 2 D 3
39 Άσκηση Η παρακάτω γραμματική είναι διφορούμενη? Δώστε ένα παράδειγμα (δηλαδή μια συμβολοσειρά που αντιστοιχεί σε δύο συντακτικά δένδρα) που να αποδεικνύει το ισχυρισμό σας. S::="a" S "b" B::="a" B B::=B "b" B::=ε
40 Απάντηση Ναι γιατί για παράδειγμα η συμβολοσειρά aabb έχει δύο συντακτικά δένδρα. S S a B b a B b a B B b B b a B ε ε
41 Τελεστές και Γραμματικές Πώς μπορεί να εκφραστεί η προτεραιότητα και προσεταιριστικότητα μέσω μιας μηδιφορούμενης γραμματικής; Προτεραιότητα: Για κάθε ομάδα τελεστών ίσης προτεραιότητας, δημιουργούμε ένα μη-τερματικό σύμβολο. Προσεταιριστικότητα: Για κάθε τελεστή ορίζεται κατάλληλα ο αντίστοιχος κανόνας παραγωγής.
42 Προσεταιριστικότητα Αριστερά προσεταιριστικός τελεστής List ::= List "," Letter Letter Letter ::= "a" "b"... "z" Συμβολοσειρά a,b,c Δεξιά προσεταιριστικός τελεστής Αssg ::= Letter "="Assg Letter Letter ::= "a" "b"... "z" Συμβολοσειρά a = b = c List List, Letter List, Letter c Letter b a Assg Letter = Assg a Letter = Assg b Letter c
43 Παράδειγμα (i) Γραμματική: E::=E"+"E E"-"E Ε"*"Ε Ε"/"Ε D D::="1" "2" "3""... "9" "0" Δύο κατηγορίες τελεστών ως προς την προτεραιότητα: αριστερά προσεταιριστικοί "+", "-" δημιουργία μη-τερματικού E αριστερά προσεταιριστικοί "*", "/" δημιουργία μη-τερματικού T. το σύμβολο D παραμένει για να δηλώσει τις βασικές μονάδες.
44 Παράδειγμα (ii) Αρ. προσεταιριστικοί "+", "-" (συμβ. Ε) Αρ. προσεταιριστικοί "*", "/" (συμβ. Τ) το σύμβολο D E::=E"+"T E"-"T T T::=T"*"D T"/"D D D::="1" "2"... "9" "0" Ε Συμβολοσειρά 4-3+5*8 Ε Ε - T + Τ Τ * D T D D 8 D 3 5 4
45 Απαλοιφή Αριστερής Αναδρομής Αριστερά αναδρομικός κανόνας με: Άμεση αναδρομή Α::= Αβ Έμμεση αναδρομή Α::=αβ, όπου σε μία ή περισσότερες παραγωγές η συμβολοσειρά α παράγει την Αγ. Γενικότερα Α α και α Αβ Η αριστερή αναδρομή είναι ανεπιθύμητη στην περίπτωση της από-πάνω προς τα κάτω ανάλυσης (top-down). Γιατί;
46 Μέθοδος Απαλοιφής Έστω ο κανόνας Α::=Αα 1 Αα 2... Αα n β 1... β m Ο μετασχηματισμός περιλαμβάνει την εισαγωγή ενός νέου τερματικού Α' και την μεταγραφή του κανόνα στους ακόλουθους: Α::=β 1 Α'... β m Α' Α'::=α 1 Α' α 2 Α'... α n Α' ε Παράδειγμα: E::=E "+"T E "-" T T Α::=Α α 1 Α α 2 β 1 Α::=β 1 Α' γίνεται Ε::=ΤΕ' Α'::=α 1 Α' α 2 Α' ε γίνεται Ε'::="+"ΤΕ' "-"ΤΕ' ε
47 Αντικατάσταση Οι μετασχηματισμοί για τις έμμεσες αναδρομές περιλαμβάνουν αντικαταστάσεις, έτσι ώστε οι νέοι κανόνες που θα προκύψουν να είναι άμεσα αναδρομικοί, όπου και εφαρμόζεται η προηγούμενη μέθοδος. Αντικατάσταση είναι ο μετασχηματισμός στον οποίο αντικαθιστούμε ένα μη-τερματικό σύμβολο Β στο δεξιό μέλος ενός κανόνα Α με όλα τα εναλλακτικά δεξιά μέλη κανόνων που αφορούν το Β. Α::=α 1 Βα 2 Α::=α 1 β 1 α 2 α 1 β 2 α 2... α 1 β n α 2 Β::=β 1 β 2... β n Β::=β 1 β 2... β n
48 Αριστερή Παραγοντοποίηση Για την αποδοτική υλοποίηση των συντακτικών αναλυτών δεν πρέπει δύο εναλλακτικοί κανόνες για ένα μη-τερματικό να ξεκινούν με το ίδιο πρόθεμα. Δηλαδή: Α::=αβ 1 αβ 2... αβ n γ 1 γ 2... γ n Η γραμματική με αριστερή παραγοντοποίηση μετατρέπεται στην: Α::=αΒ γ 1 γ 2... γ n Β::=β 1 β 2... β n
49 Άσκηση Εφαρμόστε αριστερή παραγοντοποίηση και τις απαραίτητες αντικαταστάσεις στην ακόλουθη γραμματική: S::=aBc adec C g B::=de C::=adefB Απάντηση: Με αντικατάσταση της Β και της C το πρώτο σύνολο κανόνων γίνεται: S::=adec adeadefb adefb g και με παραγοντοποίηση: S::=adeS' g S'::=c adefb fb
50 Συναρτήσεις FIRST και FOLLOW Οι δύο συναρτήσεις ορίζονται για τα σύμβολα μιας γραμματικής και αφορούν την κατασκευή συντακτικών αναλυτών και των δύο τύπων. Έστω μια γραμματική G={T,N,P,S} Η συνάρτηση FIRST(α) ορίζεται για κάθε συμβολοσειρά α (Τ Ν)* και ισούται με το σύνολο των τερματικών συμβόλων με τα οποία μπορεί να ξεκινά μια συμβολοσειρά η οποία παράγεται από την α. Η συνάρτηση FOLLOW(A), όπου Α Ν, είναι το σύνολο των τερματικών συμβόλων που μπορεί να ακολουθούν την Α σε ένα προτασιακό τύπο.
51 Υπολογισμός Συνάρτησης FIRST (i) Για κάθε σύμβολο Χ της γραμματικής G, ισχύουν οι ακόλουθοι κανόνες υπολογισμού: Αν Χ τερματικό τότε FIRST(X) ={X} Αν Χ Ν και υπάρχει κανόνας Χ ε, τότε FIRST(X)=FIRST(X) {ε} Αν Χ Ν, και για κάθε κανόνα Χ Α 1,Α 2...Α n, τότε FIRST(X) = FIRST(X) (FIRST(A i ) -{ε}), για κάθε i, τέτοιο ώστε j 0<j<i ε FIRST(A j ). Εάν j 0<j n ε FIRST(A j ), τότε FIRST(X)=FIRST(X) {ε} Οι κανόνες εφαρμόζονται μέχρι να μην μπορούν να μεταβληθούν τα σύνολα FIRST.
52 Υπολογισμός Συνάρτησης FIRST (ii) Για κάθε συμβολοσειρά Χ 1,Χ 2,...,Χ n FIRST(Χ 1,...,Χ n ) = FIRST(X 1 ) {ε} Για κάθε i 1<i n, εάν j 0<j<i ε FIRST(X j ) τότε FIRST(Χ 1,...,Χ n )=FIRST(Χ 1,...,Χ n ) (FIRST(X i )- {ε}) Εάν για κάθε 0<i n, ε FIRST(X i ), τότε FIRST(Χ 1,...,Χ n ) = FIRST(Χ 1,...,Χ n ) {ε}
53 Συνάρτηση FOLLOW Δεδομένης μιας γραμματικής G={T,N,P,S}, και A Ν, τότε η συνάρτηση FOLLOW(A) Τ {EOF}, ορίζεται ως: Αν υπάρχει παραγωγή S * αaaβ, όπου α,β (Τ Ν)* και a είναι τερματικό σύμβολο, τότε a FOLLOW(Α). Αν υπάρχει παραγωγή S * αa, όπου α (Τ Ν)* τότε EOF FOLLOW(Α).
54 Υπολογισμός της συνάρτησης FOLLOW FOLLOW(S)={EOF} Για κάθε κανόνα της μορφής Α αββ, όπου Α και Β Ν και α,β (Τ Ν)*, FOLLOW(B)=FOLLOW(B) (FIRST(β)-{ε}) Εάν ε FIRST(β) τοτε FOLLOW(B)=FOLLOW(B) FOLLOW(Α) Το παραπάνω εκτελείται μέχρι τα σύνολα FOLLOW να μην μεταβάλλονται.
55 Συντακτική Ανάλυση από Πάνω προς τα Κάτω Η συντακτική ανάλυση ξεκινά από το αρχικό σύμβολο της γραμματικής (ρίζα του συντακτικού δένδρου) και αντικαθιστά αυτό με τα σύμβολα από ένα κανόνα παραγωγής. Η διαδικασία συνεχίζεται με τους επόμενους κόμβους μέχρι όλα τα φύλλα του δένδρου να είναι τερματικά σύμβολα της γραμματικής. Με ποια σειρά θα εξεταστούν οι κόμβοι παιδιά ενός κόμβου; Ποιος από τους πιθανούς εναλλακτικούς κανόνες θα χρησιμοποιηθεί για την αντικατάσταση του μη-τερματικού συμβόλου;
56 LL(1) Γραμματικές LL(1) γραμματική: Αναγνώσιμη από ένα LL(1) ΣΑ (αναδρομικής κατάβασης ή ΑΣ). Υποσύνολο των γραμματικών χωρίς συμφραζόμενα, αρκετά πλούσιο όμως για να περιγράψει τις περισσότερες γλώσσες. Προϋποθέσεις: Για κάθε ζεύγος κανόνων παραγωγής Α α και Α β πρέπει να ισχύει FIRST(α) FIRST(β) =. Αν το ε ανήκει στο FIRST(A) (για παράδειγμα υπάρχει κανόνας Α ε) πρέπει να ισχύει FIRST(Α) FOLLOW(Α) =.
57 LL(1) Γραμματικές Αποκλείονται οι γραμματικές: Αριστερά αναδρομικές Έχουν δύο εναλλακτικούς κανόνες με δεξιά μέλη που ξεκινούν με το ίδιο σύμβολο. Έχουν δύο εναλλακτικούς κανόνες τα δεξιά μέλη των οποίων παράγουν την κενή συμβολοσειρά. Πως επιτυγχάνεται το παραπάνω; Απαλοιφή αριστερής αναδρομής Αντικατάσταση Αριστερή παραγοντοποίηση
58 Άσκηση Είναι η ακόλουθη γραμματική LL; Αν όχι κάντε τους απαραίτητους μετασχηματισμούς ώστε να γίνει LL. S::= SS+ SS* a Απάντηση: Όχι η γραμματική δεν είναι LL, καθώς είναι αριστερά αναδρομική.
59 Απάντηση Οι μετασχηματισμοί που πρέπει να γίνουν είναι οι ακόλουθοι. (παραγοντοποίηση) S::=SSB a B::=+ * (απαλοιφή αριστερής αναδρομής) S::=aC C::=SBC ε B::=+ * Εναλλακτικά θα μπορούσαν οι μετασχηματισμοί να γίνουν με διαφορετική σειρά.
60 Υπολογισμός FIRST FIRST(S)={a} FIRST(B)={+,*} FIRST(C)={ε + FIRST(S)}={ε,a} S::=aC C::=SBC ε B::=+ * FOLLOW(S)={EOF,+FIRST(B)}={EOF,+,*} FOLLOW(C)=FOLLOW(S)={EOF,+,*} FOLLOW(B)={(FIRST(C)-ε))+FOLLOW(C)}={a +FOLLOW(S)}={a,EOF,+,*}
61 ΣΑ Αναδρομικής Κατάβασης Recursive Descent ΣΑ από πάνω προς τα κάτω, εύκολα κατασκευάσιμος χειρωνακτικά. Σε κάθε μη-τερματικό σύμβολο, αντιστοιχίζεται μια ρουτίνα η οποία το αναγνωρίζει. Αποφυγή οπισθοδρόμησης: Χρήση της συνάρτησης FIRST για την επιλογή της κατάλληλης ρουτίνας για την αναγνώριση, εξετάζοντας την επόμενη λεκτική μονάδα (lookahead).
62 ΣΑ Αναδρομικής Κατάβασης (ii) Έστω Α::=α 1 α 2... α n και η επόμενη λεκτική μονάδα είναι η token. O κώδικας για την αναγνώριση της Α είναι: if token FIRST(α 1 ) then <κώδικας για την α 1 >... elseif token FIRST(α n ) then <κώδικας για την α n > elseif ε FIRST(α 1 )... FIRST(α n ) then <συντακτικό σφάλμα> elseif token FOLLOW(A) then <συντακτικό σφάλμα>
63 Χειροκίνητη Κατασκευή Συντακτικού Αναλυτή FIRST(S)={a} FIRST(B)={+,*} FIRST(C)={ε,a} FOLLOW(S)={EOF,+,*} FOLLOW(C)={EOF,+,*} FOLLOW(B)={a,EOF,+,*} S::=aC FIRST(aC)={a} C::=SBC ε FIRST(SBC)={a} FIRST(ε) = {ε} B::=+ * FIRST(+)={+} FIRST(-)={-} void S() {if token=a match(a);call C; else error;} void B() {if token = + match(+) elseif token=* match(*); else error} void C(){if token = a call S; call B; call C; elseif token not_in {EOF,+,*} error;}
64 ΣΑ LL(1) Αυτομάτου Στοίβας a 1 a 2... a m EOF x n... x 2 Πίνακας Συντακτικής Ανάλυσης LL(1) x 1
65 Κατασκευή Πίνακα Συντακτικής Ανάλυσης Για κάθε κανόνα παραγωγής Α β: Για κάθε τερματικό σύμβολο a a FIRST(β), πρόσθεσε τον κανόνα Α β στη θέση M[A,a] Αν ε FIRST(β), τότε για κάθε τερματικό σύμβολο a FOLLOW(Α), πρόσθεσε τον κανόνα Α β στην θέση Μ[Α,a]. Αν ε FIRST(β) και EOF FOLLOW(Α) τότε πρόσθεσε τον κανόνα Α β στην θέση Μ[Α,EOF] Όσες θέσεις του πίνακα μένουν κενές συμπληρώνονται με την ένδειξη error (ή απλώς υπονοείται).
66 Πίνακας LL FIRST(S)={a} FIRST(B)={+,*} FIRST(C)={ε,a} FOLLOW(S)={EOF,+,*} FOLLOW(C)={EOF,+,*} FOLLOW(B)={a,EOF,+,*} S::=aC FIRST(aC)={a} C::=SBC ε FIRST(SBC)={a} FIRST(ε) = {ε} B::=+ * FIRST(+)={+} FIRST(-)={-} * + a EOF B * + C ε ε SBC ε S ac
67 Λειτουργία ΣΑ LL(1) Συμπίπτει με την λειτουργία του ΑΣ. Μέχρι η στοίβα να είναι κενή: Αν στην κορυφή της στοίβας βρίσκεται το τερματικό σύμβολο a το οποίο συμπίπτει με το επόμενο σύμβολο της συμβολοσειράς εισόδου, τότε το a αφαιρείται από τη στοίβα και το αυτόματο προχωρά στο επόμενο σύμβολο. Αν στην κορυφή της στοίβας είναι το μη-τερματικό Α, και το επόμενο σύμβολο της συμβολοσειράς εισόδου τότε είναι το a, και υπάρχει κανόνας Α β στο Μ[Α,a], τότε το Α αφαιρείται από τη στοίβα και τοποθετούνται τα σύμβολα του β στη στοίβα. Αλλιώς σφάλμα.
68 Συντακτική Ανάλυση από Κάτω προς τα Πάνω Bottom-up Syntax Analysis Δημιουργία δένδρου: Κατασκευή αριστερότερου κόμβου, του οποίου όλοι οι κόμβοι παιδιά (απόγονοι) έχουν ήδη κατασκευαστεί. Η κατασκευή του δένδρου τερματίζει όταν κατασκευαστεί το τερματικό σύμβολο της γραμματικής (ρίζα). Πρόβλημα: Ποιοι ήδη δημιουργημένοι κόμβοι θα χρησιμοποιηθούν ως παιδιά για την κατασκευή του νέου κόμβου;
69 Παράδειγμα Έστω η ακόλουθη γραμματική και η συμβολοσειρά id * id. Ε ::= Ε "+" Τ Τ T ::= Τ "*" F F F ::= "id" "(" E ")" Η δημιουργία του δένδρου περιλαμβάνει T E T id * id F * id T * id T * F T * F T * F id F F id F id F id id id id id
70 ΣΑ Ολίσθησης Ελάττωσης (shift-reduce) Γενική κατηγορία ΣΑ από κάτω προς τα πάνω Χρησιμοποιούν στοίβα για να αποθηκεύουν τερματικά και μη-τερματικά σύμβολα. Ενέργειες ενός ΣΑ: Ολίσθηση (shift), όπου ένα σύμβολο εισόδου τοποθετείται στη στοίβα Ελάττωση (reduce), όπου ένα ή περισσότερα σύμβολα από την κορυφή της στοίβας αντικαθίστανται από ένα μη-τερματικό σύμβολο. Αποδοχή (accept), όταν η στοίβα περιέχει το αρχικό σύμβολο της γραμματικής Σφάλμα (error), όταν εμφανιστεί συντακτικό σφάλμα.
71 Αποφάσεις κατά την διάρκεια της Συντακτικής Ανάλυσης Ε ::= Ε "+" Τ Τ T ::= Τ "*" F F F ::= "id" "(" E ")" Στοίβα Είσοδος Ενέργεια $ id * id EOF shift $id *id EOF reduce F::=id $F *id EOF reduce T::=F $T *id EOF shift $T* id EOF shift $T*id EOF reduce F::=id $T*F EOF reduce T::=T*F $T EOF reduce E::=T $E EOF accept Ελάττωση με κανόνα Ε::=Τ ή ολίσθηση? Ελάττωση με τον κανόνα Τ::=Τ*F ή T::=F?
72 ΣΑ LR(1) Οι ΣΑ της κατηγορίας υλοποιούνται με αυτόματο στοίβας της μορφής: s n a 1 a 2... a m EOF x n... ΑΛΓΟΡΙΘΜΟΣ LR s 1 x 1 ΠΙΝΑΚΕΣ ΕΛΕΓΧΟΥ ΣΥΝΤΑΚΤΙΚΗΣ ΑΝΑΛΥΣΗΣ s 0 ACTION NEXT
73 Λειτουργία ΣΑ LR Αρχικά, η στοίβα περιέχει μόνο η αρχική κατάσταση. Έστω ότι στην κορυφή της στοίβας βρίσκεται η κατάσταση s και το σύμβολο εισόδου είναι a. Τότε αν το κελί του πίνακα action(s,a) περιέχει: πράξη ολίσθησης, τότε το a τοποθετείται στη στοίβα και μετά από αυτό η κατάσταση next(s,a). πράξη ελάττωσης, με ένα κανόνα της μορφής Α::=β, τότε αφαιρούνται από τη στοίβα β ζεύγη καταστάσεων-συμβόλων. Η επόμενη κατάσταση καθορίζεται από την ενέργεια s''=next(s',α) (πίνακας ΝΕΧΤ), όπου s' το στοιχείο στην κορυφή της στοίβας. Τοποθετείται στη στοίβα το Α και η κατάσταση s''. πράξη αποδοχής, τότε ο ΣΑ σταματά.
74 Παράδειγμα Πίνακα ΣΑ LR (1) Ε ::= Ε "+" Τ (2) Ε ::= Τ (3) T ::= Τ "*" F (4) T::=F (5) F::="(" E ")" (6) F ::= "id" STATE Action Goto (Next) id + * ( ) EOF E T F 0 s5 s s6 acc 2 r2 s7 r2 r2 3 r4 r4 r4 r4 4 s5 s r6 r6 r6 r6 6 s5 s s5 s s6 s11 9 r1 s7 r1 r1 10 r3 r3 r3 r3 11 r5 r5 r5 r5
75 Παράδειγμα ανάλυσης της id * id + id Στοίβα Είσοδος Ενέργεια 1 0 id*id+id EOF shift (s5) 2 0 id 5 *id+id EOF reduce by F ::= id (r6) 3 0 F 3 *id+id EOF reduce T ::= F (r4) 4 0 T 2 *id+id EOF shift (s7) 5 0 T 2 * 7 id+id EOF shift (s5) 6 0 T 2 * 7 id 5 +id EOF reduce by F ::= id (r6) 7 0 T 2 * 7 F 10 +id EOF reduce by T::=T*F (r3) 8 0 T 2 +id EOF reduce by E ::= T (r2) 9 0 E 1 +id EOF shift (s6) 10 0 E id EOF shift (s5) 11 0 E id 5 EOF reduce by F ::= id (r6) 12 0 E F 3 EOF reduce by T ::=F (r4) 13 0 E T 9 EOF reduce by E::=E+T (r1) 14 0 E 1 EOF accept
76 Κατασκευή Πίνακα SLR(1) Για την κατασκευή του αντίστοιχου πίνακα συντακτικής ανάλυσης απαιτείται ο ορισμός: της έννοιας του στοιχείου (item), της συνάρτησης CLOSURE(I) (κλεισίματος) ενός συνόλου στοιχείων, της συνάρτησης GOTO(I,X) ενός συνόλου στοιχείων και ενός συμβόλου της γραμματικής, η οποία επιστρέφει ένα σύνολο στοιχείων, ορισμός των καταστάσεων του αυτομάτου. Αλγόριθμος κατασκευής του πίνακα βάσει των παραπάνω.
77 Στοιχεία (Items) Στοιχείο είναι ένας κανόνας παραγωγής, στον οποίο έχει προστεθεί το σύμβολο " ". Για παράδειγμα στον κανόνα Α::= ΧΥΖ αντιστοιχούν τα ακόλουθα στοιχεία Α::= ΧΥΖ, Α::= Χ ΥΖ, Α::= ΧΥ Ζ Α::= ΧΥΖ Το σημείο " " σηματοδοτεί το σημείο της συμβολοσειράς που έχουμε ήδη δει, και το τι περιμένουμε να δούμε στη συνέχεια.
78 Συνάρτηση CLOSURE(I) Η συνάρτηση CLOSURE (κλείσιμο) ενός συνόλου στοιχείων Ι της γραμματικής δίνεται από: όλα τα στοιχεία του συνόλου Ι, για κάθε στοιχείο του Ι της μορφής Α::=α Ββ το οποίο ανήκει στο σύνολο CLOSURE(I) και για κάθε κανόνα της γραμματικής της μορφής Β::=γ, το στοιχείο Β::= γ ανήκει στο CLOSURE(I). Το παραπάνω βήμα εκτελείται μέχρι να μη ν μεταβάλλεται το CLOSURE(I).
79 Παράδειγμα Υπολογισμού CLOSURE(I) Έστω η (επαυξημένη) γραμματική: Ε' ::= Ε Ε ::= Ε "+" Τ Τ T ::= Τ "*" F F F ::= "id" "(" E ")" Εάν θεωρήσω το σύνολο I 0 = {E' ::= E} η συνάρτηση CLOSURE(I 0 ) είναι: CLOSURE(I 0 ) = {E'::= E; E::= E+T; E::= T; T ::= T * F; T ::= F; F ::= (E); F ::= id }
80 Συνάρτηση GOTO(Ι,Χ) Η συνάρτηση GOTO(I,X) απεικονίζει ένα σύνολο στοιχείων Ι και ένα σύμβολο της γραμματικής Χ (τερματικό ή μη) σε ένα σύνολο Ι' στοιχείων τέτοιων ώστε: GOTO(I,X) = CLOSURE(J) J = {A::=αX b A::=α Xb I} Παράδειγμα Υπολογισμού GOTO: I 1 ={E'::=E ; E::=E +T} GOTO(I 1,*) = {} GOTO(I 1,+)={E::=E+ T; T::= T*F;T::= F; F::= id; F::= (E) } Ε' ::= Ε Ε ::= Ε "+" Τ Τ T ::= Τ "*" F F F ::= "id" "(" E ")"
81 Καταστάσεις του Αυτομάτου Αρχικά το αυτόματο δεν έχει "διαβάσει" κανένα σύμβολο. Άρα η αρχική του κατάσταση είναι: Ε' ::= E Φυσικά, το Ι 0 =CLOSURE(E'::= E) CLOSURE(E'::= E) = {E'::= E; E::= E+T; E::= T; T ::= T * F; T ::= F; F ::= (E); F ::= id } Αν το αυτόματο διαβάσει ένα σύμβολο a τότε η κατάσταση του θα δίνεται από την I 1 =GOTO(I 0,a) Πχ. "ανάγνωση" σύμβολου id, άρα GOTO(I 0,id)={ F ::= id } = I 1
82 Κατασκευή Καταστάσεων Έστω μια γραμματική G=(T,N,P,S) και η επαυξημένη γραμματική: G'={T,N S',P (S'::=S),S'} Οι καταστάσεις Ι 0, Ι 1,...Ι n προκύπτουν από την ακόλουθη διαδικασία: I 0 = CLOSURE({S'::= S}) C = {I 0 } repeat forall Ι i C forall α (T N) if GOTO(Ι i,α) and GOTO(Ι i,α) C then I j = GOTO(Ι i,α) C = C { I j } until C unchaged
83 Κατασκευή Πίνακα SLR(1) ΣΑ για μια Γραμματική G 1) Δημιουργία των καταστάσεων των στοιχείων της G. 2) Για μια κατάσταση Ι i, αν υπάρχει στο Ι i κανόνας: i) Α::=α aβ και a είναι τερματικό σύμβολο και υπάρχει GOTO(Ι i,a)= Ι j τότε action(i,a)=shift j ii) Α::=α τότε για κάθε a στο FOLLOW(A) με Α S', τότε action(i,a)= reduce A::=α iii) S'::=S τότε action(i,eof) = accept 3) Για κάθε μη-τερματικό σύμβολο Α αν GOTO(Ι i,a)= Ι j τότε next(i,a)= j 4) Όλες οι άλλες θέσεις του πίνακα παίρνουν την τιμή error. 5) Η αρχική κατάσταση είναι η Ι 0 =CLOSURE({S'::= S})
84 Παράδειγμα Να υπολογιστεί ο SLR πίνακας συντακτικής ανάλυσης για την γραμματική S::=01 0S1 Επαυξημένη Γραμματική S'::=S S::=01 S::=0S1 FIRST(S)={0} FOLLOW(S)={1,EOF}
85 Υπολογισμός GOTO I 0 ={S'::= S,S::= 01, S::= 0S1} GOTO(I 0,0)={S::= 0 1, S::= 0 S1,S::= 01, S::= 0S1} = I 1 GOTO(I 0,1)={} <no state> GOTO(I 0,S)={S'::=S }=I 2 GOTO(I 1,0)={S::= 0 1, S::= 0 S1,S::= 01, S::= 0S1} = I 1 GOTO(I 1,1)={S::= 01 }=I 3 GOTO(I 1,S)={S::= 0S 1}=I 4 GOTO(I 4,1)={S::= 0S1 }=I 5 S'::=S (1) S::=01 (2) S::=0S1
86 Πίνακας SLR I 0 ={S'::= S,S::= 01, S::= 0S1} GOTO(I 0,0)={S::= 0 1, S::= 0 S1,S::= 01, S::= 0S1} = I 1 GOTO(I 0,S)={S'::=S }=I 2 GOTO(I 1,0)={S::= 0 1, S::= 0 S1,S::= 01, S::= 0S1} = I 1 GOTO(I 1,1)={S::= 01 }=I 3 GOTO(I 1,S)={S::= 0S 1}=I 4 GOTO(I 4,1)={S::= 0S1 }=I 5 S'::=S (1) S::=01 (2) S::=0S1 0 1 EOF S 0 s1 2 1 s1 s r1 acc r1 4 s5 5 r2 r2
87 Εξετάσεις Το σύγγραμα μοιράζεται από το Βιβλιοπωλείο ΑΝΙΚΟΥΛΑ (ισόγειο) Η ύλη είναι στο site του Μαθήματος. Ερωτήσεις γρ. 529 ή . Σύμφωνα με το πρόγραμμα οι εξετάσεις είναι: Παρασκευή 1 Φεβρουαρίου :00-17:00 Αιθ. 10 Καλή επιτυχία!
Γλώσσες Προγραμματισμού Μεταγλωττιστές. Συντακτική Ανάλυση II
Γλώσσες Προγραμματισμού Μεταγλωττιστές Συντακτική Ανάλυση II Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Εισαγωγή στην ανάλυση από κάτω προς τα πάνω. Οι έννοιες της ελάττωσης
Διαβάστε περισσότεραΑπάντηση: (func endfunc)-([a-za-z])+
Γλώσσες Προγραμματισμού Μεταγλωττιστές Ασκήσεις Επανάληψης ) Περιγράψτε τις κανονικές εκφράσεις που υποστηρίζουν (i) συμβολοσειρές που ξεκινούν με το πρόθεμα "func" ή "endfunc" ακολουθούμενο το σύμβολο
Διαβάστε περισσότεραΣχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι. Εαρινό Εξάμηνο Lec 05 & & 26 /02/2019 Διδάσκων: Γεώργιος Χρ.
Σχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι Εαρινό Εξάμηνο 2018-2019 Lec 05 & 06 25 & 26 /02/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Φάσεις μεταγλώττισης Αρχικό Πρόγραμμα Λεκτική Ανάλυση λεκτικές μονάδες
Διαβάστε περισσότεραΜεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Μεταγλωττιστές Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανοδική Κατασκευή Συντακτικού Δέντρου κατασκευή δέντρου
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές. Συντακτική Ανάλυση
Γλώσσες Προγραμματισμού Μεταγλωττιστές Συντακτική Ανάλυση Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Συντακτική Ανάλυση Γραμματικές χωρίς συμφραζόμενα. Αυτόματα Στοίβας
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Γιώργος Δημητρίου Μάθημα 2 ο Αλφάβητα και Γλώσσες Αλφάβητο: Ένα μη κενό και πεπερασμένο σύνολο συμβόλων Γλώσσα: Ένα οποιοδήποτε υποσύνολο των συμβολοσειρών ενός αλφαβήτου (οι προτάσεις της γλώσσας, πχ.
Διαβάστε περισσότεραΣχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση VIΙ. Εαρινό Εξάμηνο Lec 15 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής
Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση VIΙ Εαρινό Εξάμηνο 2018-2019 Lec 15 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Αναλυτής LR ώθησης - απλοποίησης Ι Συμβολοσειρά εισόδου κεφαλή ανάγνωσης
Διαβάστε περισσότεραΣχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση Ι. Εαρινό Εξάμηνο Lec /03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής
Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση Ι Εαρινό Εξάμηνο 2018-2019 Lec 09 18 /03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Φάσεις μεταγλώττισης Αρχικό Πρόγραμμα Λεκτική Ανάλυση λεκτικές μονάδες Πίνακας
Διαβάστε περισσότεραΜεταγλωττιστές. Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μεταγλωττιστές Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΈστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την
Βοηθητικές έννοιες (i) Σύνολα FIRST Έστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την Αν a τότε a FIRST Αν τότε FIRST Νίκος Παπασπύρου,
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 4 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής
Γιώργος Δημητρίου Μάθημα 4 ο Συντακτική Ανάλυση Επαλήθευση της σύνταξης του προγράμματος Κατασκευή συντακτικού δέντρου Η κεντρική φάση της Μετάφρασης Οδηγούμενης από τη Σύνταξη Από εδώ ξεκινά η παραγωγή
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 5 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Γιώργος Δημητρίου Μάθημα 5 ο ΣΑ από Κάτω προς τα Πάνω Ξεκίνημα με την πρώτη λεκτική μονάδα Διάβασε διαδοχικές λεκτικές μονάδες αντικαθιστώντας το δεξί μέλος κάποιου κανόνα που έχει σχηματιστεί με το αριστερό
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ Τελικές Εξετάσεις Απαντήστε όλα τα θέματα του Μέρους Α και ένα θέμα από
Διαβάστε περισσότεραΚεφάλαιο 2: Τυπικές γλώσσες. Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος / 216
Κεφάλαιο 2: Τυπικές γλώσσες Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 13 / 216 Τυπικές γλώσσες (i) Βασικές έννοιες Αλφάβητο Σύμβολο Συμβολοσειρά Μήκος συμβολοσειράς Σύνολο συμβολοσειρών
Διαβάστε περισσότεραΜεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος Συντακτική Ανάλυση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Μεταγλωττιστές Συντακτική Ανάλυση Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Συντακτική Ανάλυση Το συντακτικό μιας γλώσσας καθορίζει ποιες συμβολοσειρές
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές. Λεκτική Ανάλυση
Γλώσσες Προγραμματισμού Μεταγλωττιστές Λεκτική Ανάλυση Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Λεκτική Ανάλυση Τυπικές Γλώσσες Κανονικές Εκφράσεις Υλοποίηση Λεκτικών
Διαβάστε περισσότεραΜεταγλωττιστές. Ενότητα 7: Συντακτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μεταγλωττιστές Ενότητα 7: Συντακτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΚεφάλαιο 2: Τυπικές γλώσσες
Κεφάλαιο 2: Τυπικές γλώσσες (μέρος 2ο) Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 47 / 216 Γλώσσες χωρίς συμφραζόμενα (i) Γραμματικές χωρίς συμφραζόμενα: Σε κάθε παραγωγή ένα μη τερματικό
Διαβάστε περισσότεραΜΑΘΗΜΑ: Μεταγλωττιστές
Comment [h1]: Παράδειγμ α: https://ocp.teiath.gr/modules/ exercise/exercise_result.php?course=pey101&eurid=16 9 ΜΑΘΗΜΑ: Μεταγλωττιστές ΔΙΔΑΣΚΩΝ: Άγγελος Μιχάλας ΤΜΗΜΑ: Τμήμα Μηχανικών Πληροφορικής ΤΕ 1
Διαβάστε περισσότεραΚεφάλαιο 4: Συντακτική ανάλυση
Κεφάλαιο 4: Συντακτική ανάλυση (μέρος 3ο) Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 211 / 216 Συντακτικοί αναλυτές SLR(1) συµβολοσειρά εισόδου a 1 a 2... a n EOF s m x m... κορυφή επόµενο
Διαβάστε περισσότεραΟρισµοί. Τυπικές Γλώσσες Γραµµατικές και Μεταφραστές. Αλφάβητο: ένα οποιδήποτε µη κενό και πεπερασµένο σύνολο Σ αποτελούµενο από σύµβολα
Ορισµοί Τυπικές Γλώσσες Γραµµατικές και Μεταφραστές Αλφάβητο: ένα οποιδήποτε µη κενό και πεπερασµένο σύνολο Σ αποτελούµενο από σύµβολα { 0, } δυαδικό αλφάβητο { Α, Β, Γ,, Ω } κεφαλαία ελληνικά γράµµατα
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 3 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής
Γιώργος Δημητρίου Μάθημα 3 ο Λεκτική Ανάλυση και Λεκτικοί Αναλυτές Γενικά για τη λεκτική ανάλυση Έννοιες που χρειαζόμαστε Τεχνικές λεκτικής ανάλυσης Πίνακας συμβόλων και διαχείριση λαθών Σχεδίαση λεκτικού
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής
Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Δεύτερη Σειρά Ασκήσεων 22 Νοεμβρίου 2016 (χειρόγραφη και ηλεκτρονική παράδοση 9 Δεκεμβρίου) Άσκηση 1: Θεωρήστε τη γραμματική με κανόνες: Α B a A a c B B b A b
Διαβάστε περισσότεραΜεταγλωττιστές. Ενότητα 8: Συντακτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μεταγλωττιστές Ενότητα 8: Συντακτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΜεταγλωττιστές. Εργαστήριο 5. Εισαγωγή στο BISON. Γεννήτρια Συντακτικών Αναλυτών. 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση
Μεταγλωττιστές Εργαστήριο 5 Εισαγωγή στο BISON Γεννήτρια Συντακτικών Αναλυτών 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Φάσεις Μεταγλώττισης
Διαβάστε περισσότεραTop Down Bottom Up. Συντακτική Ανάλυση. Συντακτική Ανάλυση για Γραµµατικές χωρίς Συµφραζόµενα (top-down - Earley)
Top Down Bottom Up Συντακτική Ανάλυση Γιώργος Μανής δεοµένης της παραγωγής X αβ, ο συµβολισµός X α β αναπαριστά µία κατάσταση στη οποία το α έχει ήδη αναγνωριστεί και το β προσδοκάται να αναγνωριστεί.
Διαβάστε περισσότεραΠοιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);
Μοντελοποίηση του Υπολογισµού Στοιχεία Θεωρίας Υπολογισµού (): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ποιές οι θεµελιώδεις δυνατότητες
Διαβάστε περισσότεραΣτοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές
Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 1 /
Διαβάστε περισσότεραΚατηγορικές Γραµµατικές
Κατηγορικές Γραµµατικές Γραµµατικές Χωρίς περιορισµούς Με συµφραζόµενα Χωρίς συµφραζόµενα Κανονικές Πεπερασµένων επιλογών Κατηγορικές Ενεργοποίησης Γραµµατικές G = { T, N, P, S } Τ: αλφάβητο τερµατικών
Διαβάστε περισσότεραΘεωρία Υπολογισμού και Πολυπλοκότητα
Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 7. Κατηγορηματικές Γραμματικές 27,2 Φεβρουαρίου, 9 Μαρτίου 2007 Δρ. Παπαδοπούλου Βίκη 1 Κατηγορηματικές Γραμματικές Ή Γραμματικές Χωρίς Συμφραζόμενα Παράδειγμα.
Διαβάστε περισσότεραΑρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση
Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2011-2012 Γιάννης Γαροφαλάκης, Καθηγητής Αθανάσιος Ν.Νικολακόπουλος, Υποψήφιος Διδάκτορας 28 Μαρτίου 2012 Περίληψη Σκοπός της παρούσας
Διαβάστε περισσότεραΘέματα Μεταγλωττιστών
Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 1 η : Parsers Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Συντακτική Ανάλυση για ΓΧΣ Οι τεχνικές συντακτικής ανάλυσης κατηγοριοποιούνται
Διαβάστε περισσότεραΘέματα Μεταγλωττιστών
Γιώργος Δημητρίου Ενότητα 1 η : Parsers Συντακτική Ανάλυση για ΓΧΣ Οι τεχνικές συντακτικής ανάλυσης κατηγοριοποιούνται με βάση διάφορα κριτήρια: Κατεύθυνση ανάλυσης μη τερματικών συμβόλων Σειρά επιλογής
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Παραδείγματα Ενοτήτων 3-6 Ενότητα 3: Λεκτική ανάλυση Άσκηση 3-1: Να δώσετε το ενοποιημένο διάγραμμα μετάβασης που αναγνωρίζει
Διαβάστε περισσότεραΣχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση IV. Εαρινό Εξάμηνο Lec 12 01/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής
Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση IV Εαρινό Εξάμηνο 2018 2019 Lec 12 01/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Καθοδική Ανάλυση Ξεκινά από τη αρχή της γραμματικής (ρίζα δένδρου) για να
Διαβάστε περισσότεραΘεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1)
Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ασυμφραστικές Γραμματικές (2.1) Τυπικός Ορισμός Σχεδιασμός Ασυμφραστικών Γραμματικών
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Παραδείγματα Ενοτήτων 1-2 Ενότητα 1: Εισαγωγή Άσκηση 1-1: Θεωρήστε μια υποθετική γλώσσα προγραμματισμού και την παρακάτω γραμματική
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές. Λεκτική Ανάλυση II
Γλώσσς Προγραμματισμού Μταγλωττιστές Λκτική Ανάλυση II Πανπιστήμιο Μακδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακλλαρίου Δομή Ππρασμένα Αυτόματα Νττρμινιστικά Ππρασμένα Αυτόματα Μη-Νττρμινιστικά Ππρασμένα
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Δεύτερη Σειρά Ασκήσεων 22 Νοεμβρίου 2016 Μέρος Α. (χειρόγραφη και ηλεκτρονική παράδοση 9 Δεκεμβρίου) Άσκηση 1: Θεωρήστε τη
Διαβάστε περισσότεραΕισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο
Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2014-2015 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές. Συντακτική Ανάλυση με το Εργαλείο BISON
Γλώσσες Προγραμματισμού Μεταγλωττιστές Συντακτική Ανάλυση με το Εργαλείο BISON Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Γεννήτριες Συντακτικών Αναλυτών Bison/yacc
Διαβάστε περισσότεραΘεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)
Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αυτόματα Στοίβας (2.2) Τυπικός Ορισμός Παραδείγματα Ισοδυναμία με Ασυμφραστικές
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Λογισμικό Συστήματος. Κλειώ Σγουροπούλου
Λογισμικό Συστήματος Κλειώ Σγουροπούλου Λογισμικό συστήματος Λειτουργικό σύστημα Μεταφραστές γλώσσας (translators) Διερμηνείς (interpreters) Μεταγλωττιστές (compilers) Εκδότες (editors) Φορτωτές (loaders)
Διαβάστε περισσότεραΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ
ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 8: Ιδιότητες Γραμματικών χωρίς Συμφραζόμενα Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΜεταγλωττιστές. Ενότητα 5: Λεκτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μεταγλωττιστές Ενότητα 5: Λεκτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Θεωρία Υπολογισμού Ενότητα 7: Πεπερασμένη αναπαράσταση γλωσσών Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ
ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 5: Μη κανονικές γλώσσες Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΜεταγλωττιστές. μια φοιτητική προσέγγιση
Μεταγλωττιστές μια φοιτητική προσέγγιση i. Περιεχόμενα i. Περιεχόμενα ii.πηγές 1. Εισαγωγή στη Μεταγλώττιση 1.1 Η διαδικασία της μεταγλώττισης Μεταγλωττιστής: Ανάλυση Σύνθεση 1.2 Οι φάσεις της μεταγλώττισης
Διαβάστε περισσότεραΤεχνητή Νοημοσύνη. 21η διάλεξη ( ) Ίων Ανδρουτσόπουλος.
Τεχνητή Νοημοσύνη 21η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: «Artificial Intelligence A Modern Approach» των. Russel
Διαβάστε περισσότεραΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ
ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 4: Μη-ντετερμινιστικά πεπερασμένα αυτόματα με ε-μεταβάσεις Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη των Υπολογιστών
Εισαγωγή στην Επιστήμη των Υπολογιστών 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές http://www.corelab.ece.ntua.gr/courses/ Αυτόματα Τρόπος κωδικοποίησης αλγορίθμων. Τρόπος περιγραφής συστημάτων πεπερασμένων
Διαβάστε περισσότεραΑυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών 6
Εισαγωγή στην Επιστήμη των Υπολογιστών 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές http://www.corelab.ece.ntua.gr/courses/ Αυτόματα Τρόπος κωδικοποίησης αλγορίθμων. Τρόπος περιγραφής συστημάτων πεπερασμένων
Διαβάστε περισσότεραΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση. Στη δήλωση ορισμό κανονικών εκφράσεων
ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ 2 Ο Εργαστηριακό Μάθημα Λεξική Ανάλυση Σκοπός: Το μάθημα αυτό αναφέρεται: Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση Στη δήλωση ορισμό κανονικών εκφράσεων Θεωρία Πρόλογος
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Θεωρία Υπολογισμού Ενότητα 14: Γραμματικές Χωρίς Συμφραζόμενα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΘέματα Μεταγλωττιστών
Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Μια ανασκόπηση στους Μεταγλωττιστές Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Α. Γλώσσα -Μετάφραση Γλώσσα προγραμματισμού = Αναπαράσταση
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 7: Ασυμφραστικές Γλώσσες (Γλώσσες Ελεύθερες Συμφραζομένων)
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 7: Ασυμφραστικές Γλώσσες (Γλώσσες Ελεύθερες Συμφραζομένων) Τι θα κάνουμε σήμερα Εισαγωγικά Ασυμφραστικές Γραμματικές (2.1) Τυπικός Ορισμός Της Ασυμφραστικής
Διαβάστε περισσότεραΜεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μεταγλωττιστές Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Τελικές εξετάσεις 3 Ιανουαρίου 27 Διάρκεια εξέτασης: 3 ώρες (2:-5:) ΘΕΜΑ ο
Διαβάστε περισσότεραΣτοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις
Στοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού
Διαβάστε περισσότερα. visual basic. int sum(int a, int b){ return a+b;} : : :
: : : : (),, : (),( )-,() - :,, -,( ) -1.... visual basic int sum(int a, int b){ return a+b; float f=2.5; main(){ float A[10]; A[f]=15; int x=sum(int(f), 10, A[2]);. -2.... -3.foolowpos(3) * ( a b c) (
Διαβάστε περισσότεραΣχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση ΙII. Εαρινό Εξάμηνο Lec 11 26/03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής
Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση ΙII Εαρινό Εξάμηνο 2018-2019 Lec 11 26/03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Γραμματικές Μία γραμματική ονομάζεται αναδρομική εφόσον επιτρέπει παραγωγές
Διαβάστε περισσότεραΜοντελοποίηση Υπολογισμού. Γραμματικές Πεπερασμένα Αυτόματα Κανονικές Εκφράσεις
Μοντελοποίηση Υπολογισμού Γραμματικές Πεπερασμένα Αυτόματα Κανονικές Εκφράσεις Προβλήματα - Υπολογιστές Δεδομένου ενός προβλήματος υπάρχουν 2 σημαντικά ερωτήματα: Μπορεί να επιλυθεί με χρήση υπολογιστή;
Διαβάστε περισσότεραMεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία
Mεταγλωττιστές 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex Σκοπός: Το μάθημα αυτό αναφέρεται: στις κανονικές εκφράσεις στην δομή και το περιεχόμενο του αρχείου-εισόδου του flex Γενικά Θεωρία Κατά την
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές
Γλώσσες Προγραμματισμού Μεταγλωττιστές Παραγωγή Ενδιάμεσου Κώδικα Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Παραγωγή ενδιάμεσου κώδικα. Ενδιάμεσες γλώσσες. Αφηρημένα
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Γιώργος Δημητρίου Μάθημα 1 ο Γλώσσα - Μετάφραση Γλώσσα προγραμματισμού = Αναπαράσταση αλγορίθμων Ευκολία χρήσης Ακρίβεια και πληρότητα περιγραφής, όχι διφορούμενη! Μία περιγραφή για όλες τις μηχανές Μετάφραση
Διαβάστε περισσότεραaab aabb aaabb aaaabb aaaabb aaaabb
Κεφάλαιο 4 Γλώσσες & Γραμματικές Χωρίς Συμφραζόμενα Σύνοψη Η κλάση των Γλωσσών Χωρίς Συμφραζόμενα (ΓΧΣ) είναι εκφραστικά αρκετά ισχυρή, ώστε να επιτρέπει την περιγραφή γλωσσών, όπως οι γλώσσες προγραμματισμού,
Διαβάστε περισσότεραΚανονικές Γλώσσες. Κανονικές Γλώσσες. Κανονικές Γλώσσες και Αυτόματα. Κανονικές Γλώσσες και Αυτόματα
Κανονικές Γλώσσες Κανονικές Γλώσσες Διδάσκοντες: Φ. Αφράτη, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Κανονική γλώσσα αν παράγεται από κανονική γραμματική. Παραγωγές P (V Σ) Σ * ((V Σ) ε) Παραγωγές μορφής:
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει την ακόλουθη γλώσσα. { a n b n+2 c n 2 n 2 } Λύση: H ζητούμενη μηχανή Turing μπορεί να
Διαβάστε περισσότεραΓλώσσες Χωρίς Συμφραζόμενα
Γλώσσα χωρίς Συμφραζόμενα Γλώσσες Χωρίς Συμφραζόμενα Διδάσκοντες: Φ. Αφράτη, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο
Διαβάστε περισσότεραΕισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο
Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2016-2017 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα
Διαβάστε περισσότεραΠεριεχόμενα Τι περιγράφει ένα ΣΔ ΣΔ και παραγωγές Θεωρία Υπολογισμού Ενότητα 15: Συντακτικά Δέντρα Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ. Π.
Θεωρία Υπολογισμού νότητα 15: Συντακτικά Δέντρα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Πρώτη Σειρά Ασκήσεων 27 Οκτωβρίου 2016 Μέρος Α. (χειρόγραφη και ηλεκτρονική παράδοση 11 Νοεμβρίου) Άσκηση 1: Θεωρήστε το ακόλουθο
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 10: Αυτόματα Στοίβας II
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 10: Αυτόματα Στοίβας II Τι θα κάνουμε σήμερα Ισοδυναμία αυτομάτων στοίβας με ασυμφραστικές γραμματικές (2.2.3) 1 Ισοδυναμία PDA με CFG Θεώρημα: Μια
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Επανάληψη Μαθήματος
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Επανάληψη Μαθήματος Το Μάθημα σε μια Διαφάνεια Υπολογιστικά μοντέλα Κανονικές Γλώσσες Ντετερμινιστικά Αυτόματα Μη Ντετερμινιστικά Αυτόματα Κανονικές Εκφράσεις
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { ww w {a,b}* }. (β) Να διατυπώσετε την τυπική περιγραφή
Διαβάστε περισσότεραΜηχανές Turing (T.M) I
Μηχανές Turing (T.M) I Οι βασικές λειτουργίες μιας TM είναι: Διάβασε το περιεχόμενο του τρέχοντος κυττάρου Γράψε 1 ή 0 στο τρέχον κύτταρο Κάνε τρέχον το αμέσως αριστερότερο ή το αμέσως δεξιότερο κύτταρο
Διαβάστε περισσότεραΤυπικές Γλώσσες. και Μεταφραστές. Γιώργος Μανής
Τυπικές Γλώσσες Γραµµατικές και Μεταφραστές Γιώργος Μανής Ορισµοί Αλφάβητο: ένα οποιδήποτε µη κενό και πεπερασµένοσύνολοσ αποτελούµενο από σύµβολα { 0, 1 } δυαδικό αλφάβητο { Α, Β, Γ,, Ω } κεφαλαία ελληνικά
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα {w 1w 2 w 1 {0,1} * και w 2 = 0 k 1 m όπου k και m
Διαβάστε περισσότεραΠανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 8: Υπολογισιμότητα & Γλώσσες
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 8: Υπολογισιμότητα & Γλώσσες Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w#z w, z {a,b}* και η z είναι υπολέξη της w}. Συγκεκριμένα,
Διαβάστε περισσότεραΚεφάλαιο 3 : Σύνταξη Γλωσσών Προγραμματισμού
Κεφάλαιο 3 : Σύνταξη Γλωσσών Προγραμματισμού Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών ΤΜΗΥΠ Πανεπιστήμιο Πατρών Εισαγωγή Οι διαφορές των ΓΠ στις συντακτικές δομές τους, είναι πολύ μεγαλύτερες από
Διαβάστε περισσότεραCSC 314: Switching Theory
CSC 314: Switching Theory Course Summary 9 th January 2009 1 1 Θέματα Μαθήματος Ερωτήσεις Τι είναι αλγόριθμος? Τι μπορεί να υπολογιστεί? Απαντήσεις Μοντέλα Υπολογισμού Δυνατότητες και μη-δυνατότητες 2
Διαβάστε περισσότεραΑυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών. Προδιαγραφές
Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσ.h.m.μ.y. & Σ.Ε.Μ.Φ.Ε. http://www.corelab.ece.ntua.gr/courses/ 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές Στάθης Ζάχος Συνεργασία: Κωστής Σαγώνας Επιμέλεια:
Διαβάστε περισσότεραΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ
ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 1: Εισαγωγή Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Θεωρία Υπολογισμού Ενότητα 25: Γραμματικές Χωρίς Περιορισμούς Τμήμα Πληροφορικής ΘΥ 25: Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως
Διαβάστε περισσότεραΑυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation
Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Φεβρουάριος 2017 Διδάσκων: Στάθης Ζάχος ( CoReLab
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές. Σημασιολογική Ανάλυση
Γλώσσες Προγραμματισμού Μεταγλωττιστές Σημασιολογική Ανάλυση Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Σημασιολογικής Ανάλυσης Στατική και Δυναμική Σημασιολογία Σημασιολογικοί
Διαβάστε περισσότεραΜεταγλωττιστές. Ενότητα 4: Τυπικές γλώσσες (Μέρος 3 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μεταγλωττιστές Ενότητα 4: Τυπικές γλώσσες (Μέρος 3 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΠίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες
Πίνακας Περιεχοµένων Πρόλογος...vii Κεφάλαιο 1:Βασικές εισαγωγικές έννοιες...1 1.1 Η δοµή του µεταγλωττιστή...2 1.2 Η διαδικασία µεταγλώττισης...3 1.2.1 Η Λεξική Ανάλυση...6 1.2.2 Η Συντακτική Ανάλυση...6
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 9 ο
Γιώργος Δημητρίου Μάθημα 9 ο Ενδιάμεσος Κώδικας Απεικόνιση ανάμεσα στον αρχικό και στον τελικό κώδικα Γραμμικές αναπαραστάσεις: Ενδιάμεσος κώδικας πλησιέστερα στον τελικό ευκολότερη παραγωγή τελικού κώδικα
Διαβάστε περισσότεραΓενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.
Γενικές Παρατηρήσεις Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα () Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Υπάρχουν µη κανονικές γλώσσες, π.χ., B = { n n n }. Αυτό
Διαβάστε περισσότεραΛεκτικός Αναλυτής. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής
Λεκτικός Αναλυτής Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Οι Φάσεις της Μεταγλώττισης λεκτική ανάλυση συντακτική ανάλυση Πίνακας Συμβόλων σημασιολογική ανάλυση παραγωγή ενδιάμεσου κώδικα Διαχείριση
Διαβάστε περισσότεραSyntax Analysis Part V
Syntax Analysis Part V Chapter 4: Bottom-Up Parsing Slides adapted from : Robert van Engelen, Florida State University LR Parsers LR parsers are table-driven algorithms, much like the LL parsers The parse
Διαβάστε περισσότεραΚανονικές Γλώσσες. ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Κανονικές Γλώσσες ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Κανονικές Γλώσσες Κανονική γλώσσα αν
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητα Ενδιάμεση Εξέταση Ημερομηνία : Σάββατο, 15 Μαρτίου 2014 Διάρκεια : 9.30 11.30 Διδάσκουσα : Άννα Φιλίππου Ονοματεπώνυμο:
Διαβάστε περισσότεραΚεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα {1010 2 10 3 10 n 1 10 n 1 n 1}. (β) Να διατυπώσετε
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Θεωρία Υπολογισμού Ενότητα 21: Υπολογισμοί ΜΤ - Αναδρομικές Γλώσσες Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως
Διαβάστε περισσότεραΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1
Εφαρμογές στοιβών Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων Αντίστροφος Πολωνικός Συμβολισμός ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει τη γλώσσα { a 2n b n c 3n n 2 } : H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την
Διαβάστε περισσότερα