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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 4: Συντακτική ανάλυση

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

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

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

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

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

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

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

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

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

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (1) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος.

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

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

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

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

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

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

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

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

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

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

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

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

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

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

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

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

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

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

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

CSC 314: Switching Theory

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»

Θεωρία Υπολογισμού. Ασκήσεις. Δρ. Τζάλλας Αλέξανδρος, Καθηγητής Εφαρμογών. Τμ. Μηχανικών Πληροφορικής Τ.Ε.

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

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

Διακριτά Μαθηματικά. Προχωρημένες μέθοδοι απαρίθμησης: Εγκλεισμός- Αποκλεισμός

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

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 10: Αυτόματα Στοίβας II

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

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

Transcript:

Γλώσσες Προγραμματισμού Μεταγλωττιστές Ασκήσεις Επανάληψης ) Περιγράψτε τις κανονικές εκφράσεις που υποστηρίζουν (i) συμβολοσειρές που ξεκινούν με το πρόθεμα "func" ή "endfunc" ακολουθούμενο το σύμβολο "-"και από ένα ή περισσότερα γράμματα πχ. func-doule, func-computetring, func-, endfunc- (func endfunc)-([-za-z])+ (ii) ένα ή περισσότερα γράμματα ακολουθούμενα από το σύμβολο "_" (underscore) και από ένα ή περισσότερα ψηφία. πχ. vr_78, complexvr_67877, _8 ([-z]+)_([-9])+ (iii) συμβολοσειρές που αποτελούνται από και, όπου κάθε έχει πριν και μετά τουλάχιστον ένα. πχ. ενώ απορρίπτονται οι, και. Να δοθεί το αντίστοιχο ντετερμινιστικό πεπερασμένο αυτόματο, (μπορείτε να το σχεδιάσετε και να το δοκιμάσετε στο εργαλείο JFLAP) και η αντίστοιχη κανονική γραμματική (Άσκηση 2.-3 Σκορδαλάκης-Παπασπύρου Μεταγλωττιστές). Κανονική έκφραση ( )* Γραμματική ::=D D::=ε D::=D D::=D ή (χωρίς κενές μεταβάσεις) ::= ::=D D::= D::= D::=D D::=D (iv) συμβολοσειρές με μήκος τουλάχιστον 2 που περιέχουν τουλάχιστον ένα, οι οποίες όταν ξεκινούν από τότε η υπόλοιπη συμβολοσειρά πρέπει να έχει άρτιο αριθμό, ενώ όταν ξεκινούν από η υπόλοιπη συμβολοσειρά πρέπει να έχει περιττό αριθμό, πχ, και,,. Να δοθεί το αντίστοιχο ντετερμινιστικό πεπερασμένο αυτόματο, (μπορείτε να το σχεδιάσετε και να το δοκιμάσετε στο εργαλείο JFLAP) και η αντίστοιχη κανονική γραμματική. Κανονική έκφραση: ( *)*( *)* Γραμματική: ::= ::=C ::= ::=C C::=C C::=D D::=ε D::=C D::=D Α Α Β Γ Β C D

2) Να δοθεί πεπερασμένο ντετερμινιστικό αυτόματο το οποίο να αναγνωρίζει συμβολοσειρές αποτελούμενες από ψηφία (-9) οι οποίες αναπαριστούν φυσικούς αριθμούς οι οποίοι διαιρούνται ακριβώς με το 3. (Άσκηση 2.3 Σκορδαλάκης-Παπασπύρου Μεταγλωττιστές). Δείτε αρχείο JFLAP στην ιστοσελίδα του μαθήματος. 3) Υλοποιείστε τις κανονικές εκφράσεις της άσκησης () σε ένα αρχείο FLEX, έτσι ώστε όταν οι αντίστοιχες συμβολοσειρές βρίσκονται μέσα σε ένα αρχείο εισόδου, να τυπώνεται ο αριθμός γραμμής του αρχείου που εμφανίζονται στην οθόνη και η αντίστοιχη συμβολοσειρά που ικανοποιεί τις κανονικές εκφράσεις. 4) Έστω η γραμματική και η συμβολοσειρά αα+αα** ::= + * α) Δώστε την αριστερότερη παραγωγή της συμβολοσειράς. β) Δώστε την δεξιότερη παραγωγή της συμβολοσειράς γ) Δώστε το συντακτικό δένδρο της συμβολοσειράς για την συγκεκριμένη γραμματική. α) =>*=>+*=>+*=>+*=>+**=>+**=>+** β) =>*=>**=>**=>**=>+**=>+**=>+** γ) Το συντακτικό δένρο είναι * + *

5) Η παρακάτω γραμματική είναι διφορούμενη? Δώστε ένα παράδειγμα (δηλαδή μια συμβολοσειρά που αντιστοιχεί σε δύο συντακτικά δένδρα) που να αποδεικνύει το ισχυρισμό σας. ::="" Β "" ::="" ::= "" ::=ε ε Ναι γιατί για παράδειγμα η συμβολοσειρά έχει δύο συντακτικά δένδρα. ε 6) Εφαρμόστε αριστερή παραγοντοποίηση και τις απαραίτητες αντικαταστάσεις στην ακόλουθη γραμματική: ::=c dec C g ::=de C::=def Με αντικατάσταση της Β και της C το πρώτο σύνολο κανόνων γίνεται: ::=dec dedef def g και με παραγοντοποίηση: ::=de' g '::=c def f

7) Είναι η ακόλουθη γραμματική LL; Αν όχι κάντε τους απαραίτητους μετασχηματισμούς ώστε να γίνει LL. ::= + * Όχι η γραμματική δεν είναι LL, καθώς είναι αριστερά αναδρομική. Οι μετασχηματισμοί που πρέπει να γίνουν είναι οι ακόλουθοι. (α) (παραγοντοποίηση) ::= ::=+ * (απαλοιφή αριστερής αναδρομής) (β) (απαλοιφή αριστερής αναδρομής) (παραγοντοποίηση) ::=C C::=C ε ::=+ * ::=C C::=+C *C e ::=C C::= e ::=+C *C 8). Έστω η ακόλουθη γραμματική: ::= Να κατασκευαστεί ο LL πίνακας συντακτικής ανάλυσης αφού γίνουν στη γραμματική οι κατάλληλες μετατροπές. Απάντηση ::= ::= FIRT()={} FIRT()={,} FOLLOW()={,EOF} FOLLOW()={,EOF} Πίνακας LL EOF ::= ::= ::=

9) Υπολογίστε τα σύνολα FIRT και FOLLOW για την γραμματική της άσκησης (7) και να κατασκευάσετε τον LL πίνακα συντακτικής ανάλυσης. H τροποποιημένη γραμματική είναι: ::=C C::=C ε ::=+ * Οι συναρτήσεις FIRT και FOLLOW υπολογίζονται: FIRT()={} FIRT()={+,*} FIRT(C)={ε + FIRT()}={ε,} FOLLOW()={EOF,+FIRT()}={EOF,+,*} FOLLOW(C)=FOLLOW()={EOF,+,*} FOLLOW()={(FIRT(C)-ε))+FOLLOW(C)}={+FOLLOW()}={,EOF,+,*} Ο πίνακας LL δίνεται παρακάτω: FIRT(C)={} FIRT(C)={} FIRT(ε) = {ε} FIRT(+)={+} FIRT(-)={-} * + EOF * + C ε ε C ε C

) Να υπολογιστεί ο LR πίνακας συντακτικής ανάλυσης για την γραμματική ::= Επαυξημένη Γραμματική '::= () ::= (2) ::= FIRT()={} FOLLOW()={,EOF} I ={'::=,::=, ::= } GOTO(I,)={::=, ::=,::=, ::= } = I GOTO(I,)={'::= }=I 2 GOTO(I,)={::=, ::=,::=, ::= } = I GOTO(I,)={::= }=I 3 GOTO(I,)={::= }=I 4 GOTO(I 4,)={::= }=I 5 Σύμβολα Καταστάσεις EOF s 2 s s3 4 2 3 r cc r 4 s5 5 r2 r2 Για παράδειγμα: Κατάσταση, σύμβολο : Στην κατάσταση Ι, υπάρχει το στοιχείο ::=, και GOTO(I,)=I 3 άρα shift3 (s3). Κατάσταση 3, σύμβολο και EOF: Στην κατάσταση Ι3, υπάρχει το ::= και FOLLOW()={,EOF}, άρα reduce με τον κανόνα :: για σύμβολα και EOF, που είναι ο κανόνας (r). Κατάσταση 2: I 2 ={'::= } άρα cc για το EOF.

) Δώστε την αναπαράσταση στην γλώσσα των τετράδων των ακόλουθων προγραμμάτων: ++2*23+8 :+,,, t 2 :*, 2, 23, t2 3 :+, t, t2, t3 4 :+, t3, 8, t4 5 :=, t4, -, x if x>2+3 then x:=8+23 6 :+, 2, 3, t5 7 :>, x, t5, 9 8 :jump, -, -, 2 9 :+, 8, 23, t6 2 :=, t6, -, x 2 :... if x>2 nd y<2 then if z=3 or f> then s:= 2 :>, x, 2, 23 22 :jump, -, -, 3 23 :<, y, 2, 25 24 :jump, -, -, 3 25 :=, z, 3, 29 26 :jump, -, -, 27 27 :>, f,, 29 28 :jump, -, -, 3 29 :=,, -, s 3 :...