ΚΕΦΑΛΑΙΟ 4 ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΥΝΤΑΚΤΙΚΗΣ ΑΝΑΛΥΣΗΣ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΚΕΦΑΛΑΙΟ 4 ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΥΝΤΑΚΤΙΚΗΣ ΑΝΑΛΥΣΗΣ"

Transcript

1 1 ΚΕΦΑΛΑΙΟ 4 ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΥΝΤΑΚΤΙΚΗΣ ΑΝΑΛΥΣΗΣ Στόχος Στόχος του Κεφαλαίου αυτού είναι να µάθουµε τις βασικότερες από τις τεχνικές και τις µεθοδολογίες συντακτικής ανάλυσης των κατηγοριών bottom up και top down που χρησιµοποιούνται σε µεταγλωττιστές Προσδοκώµενα αποτελέσµατα Όταν θα έχετε µελετήσει το κεφάλαιο αυτό θα µπορείτε να Εξηγήσετε τις διαφορές στη λειτουργία µεταξύ των µεθόδων bottom up και top down, Εξηγήσετε αν µια γραµµατική είναι κατάλληλη για ένα συντακτικό αναλυτή της κατηγορίας bottom up και top down, Κατασκευάσετε ένα συντακτικό αναλυτή του τύπου operator precedence, Μετατρέψετε µια γραµµατική ώστε να είναι κατάλληλη για ένα αναλυτή τύπου recursive descent και LL(1) χωρίς οπισθοανίχνευση, Κατασκευάσετε ένα συντακτικό αναλυτή του τύπου recursive descent, Περιγράψετε τον τρόπο λειτουργίας ενός αναλυτή τύπου LL(1) Έννοιες κλειδιά bottom up και top down ανάλυση, shift-reduce, οπισθοανίχνευση, operator precedence, recursive descent, LL(1), Εισαγωγικές παρατηρήσεις Είδαµε στο προηγούµενο κεφάλαιο πως µια CF-γραµµατική µπορεί να χρησιµοποιηθεί για να ορίσει την σύνταξη µιας γλώσσας προγραµµατισµού. Τώρα θα δούµε πώς να ελέγξουµε ότι µια συµβολοσειρά είναι µια πρόταση µιας δοθείσης γραµµατικής και πώς, αν χρειάζεται, να δηµιουργήσουµε ένα δένδρο ανίχνευσης για την συµβολοσειρά. Στο κεφάλαιο αυτό θα υποθέσουµε ότι η είσοδος του Συντακτικού Αναλυτή είναι µια ακολουθία από tokens τα οποία παραδίδονται το ένα µετά το άλλο από τον Λεξικό Αναλυτή. Θα συζητήσουµε κατ' αρχήν στην ενότητα 4.2 µια bottom-up µέθοδο που καλείται µετακίνησε-µείωσε ("shift-reduce") διότι µετακινεί (shift) τα σύµβολα εισόδου σε µια στοίβα (Stack) µέχρις ότου το δεξιό µέρος ενός κανόνα εµφανιστεί στην κορυφή της στοίβας. Aυτό κατόπιν αντικαθίσταται -µειώνεται (reduced)- από το µη τερµατικό σύµβολο στα αριστερά του κανόνα. Στη συνέχεια

2 2 στην ενότητα 4.3 θα µελετήσουµε την µέθοδο Operator Precedence και θα δούµε πώς µπορούµε να κατασκευάσουµε ένα τέτοιο συντακτικό αναλυτή. Στην ενότητα 4.4 θα µελετήσουµε τα προβλήµατα που εµφανίζονται στην κατηγορία top down και τρόπους αντιµετώπισης τους. Τέλος στις ενότητες 4.5 και 4.6 θα µελετήσουµε δυο τρόπους υλοποίησης της κατηγορίας top down δηλαδή τις µεθόδους Recursive Descent και LL(1) ή Predictive Parsing. ΕΝΟΤΗΤΑ 4.1 ΕΙΣΑΓΩΓΗ ΣΕ ΣΥΝΤAΚΤΙΚΗ AΝAΛΥΣΗ Οι δυο πιο κοινές µορφές συντακτικής ανάλυσης είναι η Οperator Ρrecedence και η Recursive Descent (Αναδροµική Κατάβαση). Η πρώτη είναι κατάλληλη κυρίως για αριθµητικές εκφράσεις, η δε δεύτερη χρησιµοποιεί µια συλλογή από αναδροµικές ρουτίνες για να κάνει την Συντακτική Aνάλυση εφόσον η γραµµατική η ίδια είναι αναδροµική. Σε πολλούς Συντακτικούς Αναλυτές χρησιµοποιείται Οperator Ρrecedence ανίχνευση για τις εκφράσεις και Αναδροµική Κατάβαση για την υπόλοιπη γλώσσα. υο νεώτερες µέθοδοι έχουν γίνει δηµοφιλείς, κυρίως σε συνδυασµό µε κάποια εργαλεία (βοηθήµατα) που τις κάνουν ευκολόχρηστες. Η πρώτη από αυτές, LL ανίχνευση, είναι µια παραλλαγή της Αναδροµικής Κατάβασης που βασίζεται σε πίνακες. Η δεύτερη καλείται LR και επίσης βασίζεται σε πίνακες. Η δηµιουργία των δένδρων ανίχνευσης -πραγµατική ή νοητή- µπορεί να γίνει είτε από κάτω προς τα επάνω (Βottom-up) είτε από επάνω προς τα κάτω (Τop-Down). Η µέθοδος LR που αναφέραµε παραπάνω είναι µια Βottom-up, όπως είναι και η Οperator Ρrecedence. Η Αναδροµική Κατάβαση όπως και η LL είναι Τop-Down µέθοδοι. Τop-Down και Βottom-up είναι λοιπόν οι δύο βασικοί τρόποι που χρησιµοποιούµε για να κάνουµε συντακτική ανίχνευση µιας πρότασης µιας γλώσσας. ΕΝΟΤΗΤΑ 4.2 SΗΙFΤ-RΕDUCΕ AΝΙΧΝΕΥΣΗ Είναι µια bottom-up µέθοδος που δηµιουργεί το δένδρο ανίχνευσης από µια συµβολοσειρά εισόδου w και προχωρεί προς την ρίζα. Ας υποθέσουµε για παράδειγµα ότι µας δίνεται η γραµµατική S aacβe A Ab b

3 3 Β d και η συµβολοσειρά εισόδου w=abbcde, και ότι θέλουµε να µειώσουµε το w στο αρχικό σύµβολο S. Η διαδικασία διακρίνεται στις εξής µειώσεις: abbcde=>aabcde=>aacde=>aacβe=>s. Aν είχαµε αντικαταστήσει το b µε το A στο aabcde θα βρίσκαµε aaacde το οποίο δεν µπορούµε να µειώσουµε σε S. Χρειάζεται λοιπόν να ορίσουµε το handle. Aπλά (!) λέµε ότι, µια υπο-συµβολοσειρά η οποία είναι το δεξί µέρος ενός κανόνα, τέτοια ώστε η αντικατάστασή της από το αριστερό µέρος του κανόνα, τελικά οδηγεί σε µια µείωση στο αρχικό σύµβολο, µε την αντίστροφη διαδικασία µιας δεξιότερης παραγωγής, καλείται handle!! Πιο τυπικά βέβαια µπορούµε να δώσουµε τον εξής ορισµό Ηandle µιας δεξιά-προτασιακής µορφής γ είναι ένας κανόνας A β και µια θέση της γ όπου η συµβολοσειρά β µπορεί να ευρεθεί και αντικατασταθεί από το A για να δηµιουργήσει την προηγούµενη δεξιά-προτασιακή µορφή, σε δεξιότερη παραγωγή του γ. εξιά-προτασιακή µορφή είναι µία προτασιακή µορφή που δηµιουργείται από µια δεξιά παραγωγή όπως αυτή έχει περιγραφεί στην ενότητα 3.2. Παράδειγµα 1 / Κεφ. 4 Έστω η γραµµατική: (1) Ε Ε + Ε (2) Ε Ε * Ε (2) (3) Ε ( Ε ) (4) Ε id Παρατηρήστε την παρακάτω δεξιότερη παραγωγή Ε => Ε+Ε => Ε+Ε*Ε => Ε+Ε*id3 => Ε+id2*id3 =>id1+id2*id3 Το handle σε κάθε δεξιά-προτασιακή µορφή είναι υπογραµµισµένο. Η γραµµατική (2) είναι βέβαια διφορούµενη. Έτσι, αν ξεκινήσουµε από τον κανόνα Ε=>Ε*Ε δηµιουργούνται άλλα handles. Σηµειώνουµε ότι δεν αναφέρουµε ακόµα πώς βρίσκουµε τα handles, αυτό θα γίνει στην ενότητα 4.3. Η υλοποίηση της shift-reduce ανίχνευσης µπορεί να πραγµατοποιηθεί εύκολα µε την βοήθεια µιας στοίβας (stack). ύο προβλήµατα εµφανίζονται εδώ. Πώς να εντοπίσουµε ένα handle σε µια δεξιά-προτασιακή µορφή, και ποιόν κανόνα να διαλέξουµε στην περίπτωση που υπάρχουν περισσότεροι από ένας. µια

4 4 Χρησιµοποιούµε µια στοίβα και ένα buffer που περιέχει τη συµβολοσειρά εισόδου. Το σύµβολο $ σηµειώνει το τέλος της στοίβας και το δεξιό τέλος του buffer. Stack Ιnput Βuffer $ W $ Ο shift-reduce Συντακτικός Αναλυτής λειτουργεί µεταφέροντας µηδέν ή περισσότερα σύµβολα στη στοίβα, µέχρις ότου ένα handle β σχηµατισθεί στην κορφή της. Κατόπιν µειώνει το β στο αριστερό µέρος του κατάλληλου κανόνα. Η διαδικασία επαναλαµβάνεται έως ότου ανακαλυφθεί λάθος ή η στοίβα περιέχει το αρχικό σύµβολο της γραµµατικής και ο Ιnput buffer είναι άδειος. Stack Ιnput Βuffer $ S $ Παράδειγµα 2 / Κεφ. 4 Aς δούµε στο Σχήµα 4.1 βήµα-βήµα την λειτουργία του shift-reduce Αναλυτή ακολουθώντας την γραµµατική (2) και συµβολοσειρά εισόδου την id1+id2*id3. Stack Ιnput ράση (1) $ id1+ id2 * id3$ µετέφερε (2) $ id1 + id2 * id3$ µείωσε µε Ε id (3) $ Ε + id2 * id3$ µετέφερε (4) $ Ε + id 2 * id 3 $ µετέφερε (5) $ Ε + id 2 * id 3 $ µείωσε µε Ε id (6) $ Ε +Ε * id3$ µετέφερε (7) $ Ε + Ε * id3$ µετέφερε (8) $ Ε + Ε * id3 $ µείωσε µε Ε id (9) $ Ε + Ε * Ε $ µείωσε µε Ε Ε*Ε (10) $ Ε + Ε $ µείωσε µε Ε Ε+Ε (11) $ Ε $ accept Σχήµα 4.1 Η λειτουργία του shift-reduce Αναλυτή µε είσοδο id1+id2*id3 Aν και οι βασικές λειτουργίες του Αναλυτή είναι shift και reduce, υπάρχουν ακόµα δύο, accept και error. Η λειτουργία accept αναφέρεται σε επιτυχή αναγνώριση της συµβολοσειράς εισόδου από τον αναλυτή. Η δε λειτουργία error αντιστοιχεί σε κλήση ρουτίνας διώρθωσης ή αναφοράς στντακτικού λάθους.

5 5 ΕΝΟΤΗΤΑ 4.3 ΟΡΕRAΤΟR ΡRΕCΕDΕΝCΕ ΑΝΙΧΝΕΥΣΗ Για ορισµένη µικρή κλάση γραµµατικών µπορούµε εύκολα να κατασκευάσουµε µε το χέρι, ένα shift-reduce Αναλυτή. Οι γραµµατικές αυτές δεν έχουν κανόνα µε δεξιό µέρος ε (κενό) ή δυο συνεχόµενα Μη Τερµατικά, και καλούνται Οperator Γραµµατικές. Παράδειγµα 3 / Κεφ. 4 Aπό τις παρακάτω γραµµατικές η πρώτη δεν είναι Οperator Γραµµατική, ενώ η δεύτερη είναι Οperator Γραµµατική. (1) Ε ΕAΕ (Ε) - Ε id A + - * / (2) Ε Ε+Ε Ε-Ε Ε*Ε Ε/Ε Ε Ε (Ε) - Ε id Σε Οperator Ρrecedence ανίχνευση χρησιµοποιούµε τρεις σχέσεις προτεραιότητας µεταξύ των τερµατικών συµβόλων. Οι σχέσεις αυτές κατευθύνουν την επιλογή των handles, και είναι οι : <, =, και >. Η σχέση a < b δηλώνει ότι "το a δίνει προτεραιότητα στο b", η a= b ότι "έχουν την ίδια προτεραιότητα", και η σχέση a >b ότι "το a έχει προτεραιότητα από το b". Οι σχέσεις αυτές δεν έχουν καµιά σχέση µε τα <, =,> των αριθµητικών η λογικών εκφράσεων. Είναι δυνατόν σε µια γλώσσα να έχουµε: a < b και a > b, ή ακόµη και καµιά από τις >, =, < ανάµεσα σε δυο τερµατικά a και b. Οι σχέσεις >, =, < ορίζονται πιο τυπικά από τους παρακάτω κανόνες. 1) a = b αν υπάρχει κανόνας µε δεξιό µέρος το αaβbγ, όπου β είναι είτε ε (κενό) είτε ένα Μη Τερµατικό. ηλαδή a = b αν είναι γειτονικά στο δεξί µέρος ενός κανόνα ή χωρίζονται από ένα Μη Τερµατικό. 2) a < b αν για κάποιο Μη Τερµατικό A υπάρχει κανόνας µε δεξί µέρος της µορφής αaaβ, και A => + Τερµατικό. γbδ, όπου το γ είναι είτε ε είτε µοναδικό Μη 3) a > b αν για κάποιο Μη Τερµατικό A υπάρχει κανόνας µε δεξί µέρος της µορφής αabβ, και A => + γaδ, όπου δ είναι είτε ε είτε µοναδικό Μη Τερµατικό. Επιπλέον ειδικά για το σύµβολο $ ορίζεται ότι, a > $ αν S => + γaδ και το δ είναι είτε ε είτε µοναδικό Μη Τερµατικό, όπως και ότι $ < b αν S => + γbδ και γ είναι ε ή µοναδικό Μη Τερµατικό.

6 6 Ορισµός. Οperator-Ρrecedence (Ο-Ρ) γραµµατική είναι µια operator γραµµατική στην οποία για οποιοδήποτε ζευγάρι τερµατικών συµβόλων a και b µόνο µια από τις σχέσεις a > b, a = b, και a < b είναι αληθής. ραστηριότητα 1 / Κεφ. 4 Σας δίνεται η γραµµατική (5), και σας ζητούνται τα παρακάτω Ε Ε+Ε Ε*Ε (Ε) id (5) (α) Προσπαθήστε καταρχήν να δείξετε ότι η γραµµατική αυτή δεν είναι Οperator-Ρrecedence γραµµατική (αυτό µπορείτε να το διαπιστώσετε για παράδειγµα, εφαρµόζοντας τους ορισµούς των κανόνων προτεραιότητας, και βλέποντας ότι ισχύει + > + και + < + ταυτόχρονα. Παρατηρώντας την γραµµατική θα πρέπει να δείτε ότι είναι διφορούµενη). (β) Στη συνέχεια µετασχηµατίστε την γραµµατική σε Οperator Ρrecedence και µη-διφορούµενη εφαρµόζοντας τους κανόνες αποδιφοροποίησης που µάθατε στο κεφάλαιο 3. (γ) Τέλος, κατασκευάστε τον πίνακα των σχέσεων προτεραιότητας µεταξύ όλων των τερµατικών συµβόλων της γραµµατικής. Προσπαθήστε χωρίς να κοιτάξετε τις απαντήσεις που ακολουθούν στη συνέχεια. (α) Η γραµµατική (5) είναι Οperator γραµµατική αλλά δεν είναι Οperator- Ρrecedence γραµµατική διότι µπορούµε να διαπιστώσουµε ότι ισχύουν δύο σχέσεις προτεραιότητας µεταξύ + και +. Συγκεκριµένα από τον κανόνα (3) αν αabβ είναι το Ε+Ε (δηλ. α = ε, A = Ε, b = +, και β = Ε), το δε A => γaδ θα µπορούσε να είναι το Ε => Ε+Ε (όπου γ=ε, a=+, και δ=ε), τότε + > +. Aν χρησιµοποιήσουµε τον κανόνα (2) για τις ίδιες συµβολοσειρές θα διαπιστώσουµε ότι + < +. (β) Η (5) όµως µπορεί να µετασχηµατισθεί στην παρακάτω γραµµατική η οποία είναι Οperator Ρrecedence και µη-διφορούµενη. Ε Ε + Τ Τ Τ Τ * F F (6) F ( Ε ) id

7 7 (γ) Θα κατασκευάσουµε τώρα τον πίνακα των σχέσεων προτεραιότητας όλων των τερµατικών συµβόλων για την γραµµατική (6). Ο πίνακας αυτός είναι εκείνος που θα κατευθύνει τον Συντακτικό Αναλυτή στην επιλογή των handles. Κατ' αρχήν βρίσκουµε για κάθε µη τερµατικό, εκείνα τα τερµατικά που µπορούν να είναι πρώτα ή τελευταία τερµατικά σε µια συµβολοσειρά η οποία παράγεται από αυτό το µη τερµατικό. Παρατηρούµε ότι όλες οι παραγωγές από το F θα έχουν τα σύµβολα ( ή id σαν πρώτο τερµατικό, και τα σύµβολα ) ή id σαν τελευταίο. Μια παραγωγή από το Τ µπορεί να αρχίζει Τ => Τ*F, που δείχνει ότι το * µπορεί να είναι και πρώτο και τελευταίο τερµατικό σύµβολο από τις παραγωγές του Τ. Ακόµη, µια παραγωγή του Τ µπορεί να αρχίζει µε Τ => F, που δείχνει ότι κάθε πρώτο ή τελευταίο τερµατικό που παράγεται από το F, είναι επίσης ένα πρώτο ή τελευταίο τερµατικό που παράγεται από το Τ. Έτσι το Τ έχει τα *, (, id σαν πρώτα και τα *, ), id σαν τελευταία τερµατικά σε µια παραγωγή του. Παρόµοια για το Ε βρίσκουµε ότι τα +, *, (, id µπορούν να είναι πρώτα και τα *, +, ), id τελευταία τερµατικά που προκύπτουν από τις παραγωγές του Ε. Έχουµε λοιπόν τον πίνακα του Σχήµατος 4.2, Μη Τερµατικό Πρώτα Τερµατικά Τελευταία Τερµατικά Ε *, +, (, id *, +, ), id Τ *, (, id *, ), id F (, id ), id Σχήµα 4.2 Πίνακας µε τα πρώτα και τελευταία τερµατικά σύµβολα των Ε, Τ και F Για να υπολογίσουµε τώρα την σχέση =, ψάχνουµε τα δεξιά µέλη της (6) για δυο τερµατικά σύµβολα µε ένα µη τερµατικό ή τίποτα στην µέση. Βρίσκουµε λοιπόν από τον κανόνα F ( Ε ) ότι ( = ). Κατόπιν εξετάζουµε την σχέση <. Ψάχνουµε τα δεξιά µέρη των κανόνων για ένα τερµατικό στο αριστερό µέρος ενός µη τερµατικού για να παίξουν τους ρόλους των a και A του κανόνα (2). Για κάθε τέτοιο ζευγάρι, το a σχετίζεται µε <. µε κάθε τερµατικό που µπορεί να είναι πρώτο σε κάποια συµβολοσειρά παραγόµενη από το A. Στην (6) εξετάζουµε τα + και Τ στο δεξί µέρος Ε+Τ, τα * και F στο Τ*F, και τα ( και Ε στο (Ε). Το ζευγάρι +:Τ δίνει + < *, + < (, και + < id. Το ζευγάρι *:F δίνει * < (, και * < id. Το ζευγάρι (:Ε δίνει (< *, (< +, (< C, και (< id. Τέλος προσθέτουµε τις σχέσεις $ < *, $ < +, $ < (, και $ < id, µια και το $ πρέπει να συνδέεται µε την σχέση < µε όλα τα δυνατά πρώτα τερµατικά παραγόµενα από το αρχικό σύµβολο Ε.

8 8 Συµµετρικά κατασκευάζουµε την σχέση >. Ψάχνουµε τις δεξιές πλευρές για ένα µη τερµατικό στα αριστερά ενός τερµατικού, για να παίξουν τους ρόλους των A και b του κανόνα (3). Τότε κάθε τερµατικό που µπορεί να είναι τελευταίο σε µια συµβολοσειρά που παράγεται από το A, σχετίζεται µε > µε το b. Έτσι στην (6) τα ζευγάρια που αντιστοιχούν στα A και b είναι Ε:+, Τ:*, και Ε:). Άρα θα έχουµε τις σχέσεις * >+, + >+, ) >+, id >+, * >*, ) >*, id >*, * >), + >), ) >), και id >). Aκόµη προσθέτουµε τις σχέσεις * >$, + >$, ) >$, και id >$, σύµφωνα µε τον κανόνα (3). Έχουµε λοιπόν τον πίνακα του Σχήµατος 4.3. Σχήµα 4.3 Ο πίνακας προτεραιοτήτων της Ο-Ρ γραµµατικής (6). Παρατηρώντας την µεθοδολογία του παραπάνω παραδείγµατος βλέπουµε ότι κατασκευάσαµε κατ' αρχήν δυο σύνολα LΕADΙΝG (A) και ΤRAΙLLΙΝG (A) για κάθε µη τερµατικό A, οριζόµενα από τις σχέσεις: LΕADΙΝG(A) = {a A => γaδ, όπου γ είναι ε ή µοναδικό µη τερµατικό} ΤRAΙLLΙΝG(A) = {a A => γaδ, όπου δ είναι ε ή µοναδικό µη τερµατικό} Aκολούθως καθορίσαµε την σχέση <, κοιτάζοντας στα δεξιά µέρη για συνεχόµενα σύµβολα...aa..., και σχετίσαµε το a< b για κάθε b στο σύνολο LΕADΙΝG(A). Παρόµοια µας βοήθησαν τα ΤRAΙLLΙΝG σύνολα για να καθορίσουµε τις σχέσεις >. Άσκηση αυτοαξιολόγησης 1 / Κεφ 4 Στον πίνακα προτεραιοτήτων του Σχήµατος 4.3 υπάρχουν θέσεις µε περιεχόµενα τους δείκτες e1, e2, e3 και e4. Οι δείκτες αυτοί αναφέρονται σε

9 9 ρουτίνες διόρθωσης λαθών µια και οι σχετικές θέσεις του πίνακα υποδηλώνουν συντακτικά λάθη. Προσπαθήστε να γράψετε µικρά κοµµάτια ψευδοκώδικα που θα µπορούσε να χρησιµοποιήσει ο συντακτικός αναλυτής για να εκδώσει σχετικά διαγνωστικά µηνύµατα και να διορθώσει τα αντίστοιχα λάθη. Τους αλγόριθµους για την αυτόµατη κατασκευή των συνόλων LΕADΙΝG και ΤRAΙLLΙΝG και την κατασκευή του πίνακα προτεραιοτήτων µπορείτε να τους βρείτε στην βιβλιογραφία (πχ [2,3]). Εµείς τώρα θα δώσουµε ένα αλγόριθµο shift-reduce που θα ανιχνεύσει όλες τις προτάσεις (sentences) και µόνο προτάσεις. Aλγόριθµος Είσοδος: Οι σχέσεις προτεραιότητας (ο πίνακας), µιας Ο-Ρ γραµµατικής και µια συµβολοσειρά εισόδου από τερµατικά σύµβολα της γραµµατικής. Έξοδος: Ουσιαστικά δεν υπάρχει έξοδος. Aλλιώς µπορούµε να θεωρήσουµε σαν έξοδο αυτή την ίδια την ακολουθία των βηµάτων της shift-reduce. Μέθοδος: Έστω a1 a2...an $ το input string. Aρχικά η στοίβα περιέχει $. Να εκτελεσθεί το πρόγραµµα του Σχήµατος 4.4. repeat forever (1) if µόνο $ είναι στη στοίβα και στην είσοδο (2) then accept and break else begin (3) έστω a το κορυφαίο τερµατικό σύµβολο στη στοίβα και b το τρέχον σύµβολο στην είσοδο; (4) if a < b or a = b then µετακίνησε το b στην κορυφή της στοίβας (5) else if a > b then /* µείωσε */ (6) repeat βγάλε το κορυφαίο στοιχείο από την στοίβα (7) until το κορυφαίο τερµατικό στοιχείο της στοίβας έχει την σχέση < µε το τερµατικό που εξήχθη τελευταίο (8) else κάλεσε ρουτίνα διόρθωσης λαθών end /*begin*/ Σχήµα 4.4 Πρόγραµµα πυρήνας για Ο-Ρ ανίχνευση. Εάν θέλουµε να δηµιουργήσουµε ένα δένδρο ανίχνευσης καθώς προχωράει η συντακτική ανάλυση, τότε πρέπει να δηµιουργούµε ένα κόµβο για κάθε τερµατικό που µεταφέρεται στη στοίβα στην γραµµή (4). Κατόπιν, όταν η ανακύκλωση των γραµµών (6)-(7) µειώνει µε κάποιο κανόνα, δηµιουργούµε ένα

10 10 κόµβο του οποίου παιδιά είναι οι κόµβοι που αντιστοιχούν στο οτιδήποτε εξήχθη από τη στοίβα. Μετά την γραµµή (7) τοποθετούµε στη στοίβα ένα δείκτη στον κόµβο που δηµιουργήθηκε. Aυτό σηµαίνει ότι µερικά από τα "σύµβολα" που εξήχθηκαν από την γραµµή (6) θα είναι δείκτες σε κόµβους. Η σύγκριση της γραµµής (7) συνεχίζεται να γίνεται µόνο µεταξύ τερµατικών, οι δείκτες εξάγονται χωρίς καµιά σύγκριση. ΕΝΟΤΗΤΑ 4.4 ΤΟΡ-DΟWΝ AΝΙΧΝΕΥΣΗ Κατ' αρχήν θα αναφερθούµε σε µια γενική µορφή Τop-Down ανίχνευσης η οποία χρειάζεται οπισθο-ανίχνευση (backtracking), και στην συνέχεια θα αναφερθούµε στη µέθοδο Αναδροµικής Κατάβασης η οποία καταργεί την ανάγκη για backtracking. Η Τop-Down ανίχνευση µπορεί να θεωρηθεί σαν προσπάθεια προσδιορισµού µιας αριστερότερης παραγωγής (leftmost derivation) µιας συµβολοσειράς εισόδου, ή ακόµη και σαν προσπάθεια κατασκευής ενός δένδρου ανίχνευσης για την συµβολοσειρά εισόδου αρχίζοντας από την ρίζα και δηµιουργώντας του κόµβους σε preorder διαπέραση (traversal). Ας πάρουµε την γραµµατική: S cad (7) A ab a και την συµβολοσειρά εισόδου w=cad. Κάνουµε χρήση ενός δείκτη στο w, αρχίζοντας από το σύµβολο c. Στην αρχή φτιάχνουµε ένα δένδρο µε ένα µόνο κόµβο που επιγράφεται από το S και στη συνέχεια χρησιµοποιούµε τον πρώτο κανόνα της (7) για να αναπτύξουµε το δένδρο: S c A d Το c συµπίπτει µε το πρώτο σύµβολο του w, άρα προχωράµε τον δείκτη στο a που είναι το δεύτερο σύµβολο του w, και θεωρούµε το επόµενο φύλλο που είναι το A. Aναπτύσσουµε το A σύµφωνα µε τον πρώτο εναλλακτικό κανόνα του A, και έχουµε:

11 11 S c A d a b Το δεύτερο σύµβολο a του w συµπίπτει µε το a του αναπτύγµατος του A. Κατόπιν κοιτάζουµε το επόµενο σύµβολο d του w και το οποίο δεν συµπίπτει µε το b. Aναφέρουµε την αποτυχία και ψάχνουµε για επόµενο εναλλακτικό κανόνα του A, ο οποίος θα µπορούσε να µας δώσει ταυτότητα µεταξύ w και των φύλλων του δένδρου. Πηγαίνοντας προς τα πίσω (backtracking) πρέπει να επαναφέρουµε τον δείκτη του w στην θέση 2, την οποία είχε όταν πήγαµε για πρώτη φορά στο A. Κάνουµε λοιπόν χρήση του κανόνα A a τώρα και έχουµε ταυτότητα. Το τελικό δένδρο είναι το: S c A d a Για να υλοποιήσουµε ένα τέτοιο Συντακτικό Αναλυτή µπορούµε να δηµιουργήσουµε µια ρουτίνα για κάθε µη τερµατικό σύµβολο. Οι ρουτίνες αυτές είναι κατά κανόνα αναδροµικές. Στην περίπτωση της (7), η οποία δηµιουργεί δυο µόνο συµβολοσειρές, δεν υπάρχει ανάγκη για αναδροµή. Παράδειγµα 4 / Κεφ.4 Σαν παράδειγµα δίνουµε σε µορφή ψευδοκώδικα στο Σχήµα 4.5 παρακάτω τις ρουτίνες για τους κανόνες S και Α της γραµµατικής (7) proc S( ); /* S cad */ begin if in_sym ='c' then begin advance ( );

12 12 if A ( ) then if in_sym ='d' then begin advance ( ); return true end; end; return false end; proc A ( ); begin /* φύλαξε τον δείκτη για οπισθοανίχνευση */ save_pointer := in_pointer; if in_sym = 'a' then begin advance ( ); if in_sym ='b' then begin advance ( ); return true end end; /* δοκίµασε εναλλακτικό κανόνα αφού πρώτα ακυρώσεις τις σηµασιολογικές εργασίες του προηγούµενου κανόνα */ in_pointer := save_pointer; if in_sym = 'a' then begin advance ( ); return true end else return false end. Σχήµα 4.5 Οι ρουτίνες της γραµµατικής (7) για Τop-Down ανίχνευση. Η ρουτίνα advance() αντιστοιχεί στην κλήση του Λεκτικού Αναλυτή και προχωράει τον δείκτη του w στο επόµενο σύµβολο εισόδου. Οι ρουτίνες S και A επιστρέφουν true ή false ανάλογα µε το αν βρήκαν στη συµβολοσειρά εισόδου ένα συµβολοσειρά που παράγεται από το αντίστοιχο µη τερµατικό. Παρατηρούµε ότι σε περίπτωση αποτυχίας (false), κάθε ρουτίνα αφήνει τον δείκτη εισόδου όπου ήταν όταν κλήθηκε η ρουτίνα και σε περίπτωση επιτυχίας (true) µετακινεί τον δείκτη ΠΡΟΒΛΗΜΑΤΑ ΣΕ ΤOP-DOWN ΑΝΙΧΝΕΥΣΗ Τρία είναι τα βασικά προβλήµατα που συναντάµε σε top-down ανίχνευση. Το πρώτο αναφέρεται στην αριστερή αναδροµή (left-recursion). Μια γραµµατική G λέγεται αριστερά αναδροµική αν έχει ένα µη τερµατικό A τέτοιο ώστε να υπάρχει µια παραγωγή A => Aα για κάποιο α (δες γραµµατική (8) παρακάτω). Μια αριστερά αναδροµική γραµµατική µπορεί να αναγκάσει έναν

13 13 top-down αναλυτή να µπει σε µια ατελείωτη ανακύκλωση. Aυτό µπορεί να συµβεί σε λανθασµένη συµβολοσειρά εισόδου αλλά ακόµη και σε σωστή, ανάλογα µε ποια σειρά θα δοκιµασθούν οι εναλλακτικοί κανόνες του A. Στην περίπτωση λοιπόν του top-down αναλυτή πρέπει να εξαλείψουµε την αριστερή αναδροµή από την γραµµατική (δες την υποενότητα 4.4.2). Ένα δεύτερο πρόβληµα αναφέρεται στο backtracking και στις σηµασιολογικές εργασίες που έγιναν πριν εντοπισθεί ότι πρέπει να γίνει backtracking. Παραδείγµατος χάριν, θα πρέπει να βγάλουµε από τον πίνακα συµβόλων πληροφορίες που βάλαµε προηγουµένως. Μια και η δουλειά αυτή είναι χρονοβόρα, είναι λογικό να ψάχνουµε για top-down ανιχνευτές που δεν κάνουν backtracking (π.χ. αναδροµικής κατάβασης και predictive parsers). Τρίτο πρόβληµα είναι ότι η σειρά µε την οποία δοκιµάζονται οι εναλλακτικοί κανόνες µπορεί να έχει συνέπειες στην γλώσσα. Π.χ. αν στην γραµµατική (7), χρησιµοποιούσαµε a και κατόπιν ab σαν την σειρά των εναλλακτικών του A, µπορεί να αποτυγχάναµε στην αναγνώριση της συµβολοσειράς cabd, ενώ θα είχαµε επιτυχία στην περίπτωση της cad. S c A d a ηλαδή µε το δένδρο και το ca να έχει ήδη αναγνωρισθεί, η αποτυχία ταύτισης του επόµενου συµβόλου, b, υπονοεί ότι το εναλλακτικό cad του S ήταν εσφαλµένο, και οδηγεί στην απόρριψη του cabd (διότι κάνει backtrack και πηγαίνει στο προηγούµενο φύλλο (c) για να εφαρµόσει εναλλακτικό κανόνα, άρα γυρίζει στο S το οποίο όµως δεν έχει εναλλακτικό κανόνα) AΠΑΛΟΙΦΗ ΤΗΣ ΑΜΕΣΗΣ ΑΡΙΣΤΕΡΗΣ ΑΝΑ ΡΟΜΗΣ Aν έχουµε τους κανόνες A Aα β όπου το β δεν αρχίζει µε A, τότε απαλείφουµε την αριστερή αναδροµή ξαναγράφοντας τους κανόνες ως εξής. A βa' A' αa' ε

14 14 Άσκηση αυτοαξιολόγησης 2 / κεφ 4 Μπορείτε να δείξετε ότι ο παραπάνω µετασχηµατισµός δεν αλλάζει την γραµµατική; Υπόδειξη: πρέπει να δείξετε ότι οι συµβολοσειρές που παράγονται από τον αρχικό και τον µετασχηµατισµένο κανόνα είναι ίδιες. Παράδειγµα 5 / Κεφ.4 Έστω η γραµµατική (8) παρακάτω η οποία µετασχηµατίζεται στην (9) απαλείφοντας τις άµεσες αριστερές αναδροµές της µορφής A Aα. Ε Ε + Τ Τ Ε ΤΕ' Τ Τ * Ε F (8) Ε' + ΤΕ' ε (9) F (Ε) id Τ FΤ' Τ' * FΤ' ε F (Ε) id Γενικότερα για να απαλειφθεί η άµεση αριστερή αναδροµή σε όλους τους A- κανόνες, τους οµαδοποιούµε ως εξής: A A α1 A α2... A αk β1 β2... βn όπου κανένα βi δεν αρχίζει µε A, και αντικαθιστούµε τα A µε τα: A β1 A' β2 A'... βn A' A' α1 A' α2 A'... αk A' ε Η διαδικασία αυτή απαλείφει όλες τις άµεσες αριστερές αναδροµές (αρκεί να µην υπάρχει αi που είναι ε), αλλά όχι και στις αριστερές αναδροµές που περιλαµβάνουν παραγωγές δυο ή περισσοτέρων βηµάτων (αυτό µπορείτε να το δείτε στα βιβλία [2] και [3]) όπως συµβαίνει στην παρακάτω γραµµατική. Π.χ. S Aα b A Ac Sd ε ΕΝΟΤΗΤΑ 4.5 ΑΝΑΛΥΤΕΣ ΑΝΑ ΡΟΜΙΚΉΣ ΚΑΤΑΒΑΣΗΣ Για να µη χρειάζεται backtracking, πρέπει να γνωρίζουµε, δοθέντος του τρέχοντος συµβόλου εισόδου a και του µη τερµατικού A (υπό ανάπτυξη), ποιος από τους εναλλακτικούς κανόνες A α1 α2.. αn είναι ο µοναδικός ο οποίος παράγει συµβολοσειρές που αρχίζουν µε a. Π.χ. στους κανόνες

15 15 S if C then S else S while C do S begin S-list end Οι αποκλειστικές λέξεις if, while και begin µας πληροφορούν για το ποιον εναλλακτικό κανόνα πρέπει να επιλέξουµε για να αναγνωρίσουµε ένα S. Ένας Συντακτικός Αναλυτής που χρησιµοποιεί αναδροµικές ρουτίνες για να αναγνωρίσει µια συµβολοσειρά χωρίς backtracking καλείται Αναλυτής Αναδροµικής Κατάβασης. Οι αναδροµικές ρουτίνες υλοποιούνται σε γλώσσα που επιτρέπει αναδροµή. Παράδειγµα 6 / Κεφ 4 Παρακάτω δίνονται µερικές από τις αναδροµικές ρουτίνες της γραµµατικής (9) οι οποίες αποτελούν µέρος ενός Αναλυτή Αναδροµικής Κατάβασης. Οι ρουτίνες αυτές δεν χρειάζεται να αναφέρουν επιτυχία ή αποτυχία (true, false) γιατί η ρουτίνα που τις καλεί δεν πρόκειται να δοκιµάσει άλλο εναλλακτικό κανόνα. Σε περίπτωση αποτυχίας-µη αναγνώρισης-καλείται µια ρουτίνα σφάλµατοςδιόρθωσης που ονοµάζεται error. procedure Ε( ); /* Ε ΤΕ' */ begin Τ( ) ; ΕTONOS( ) end procedure ΕTONOS( ) ; /* Ε' +ΤΕ' ε */ if input-symbol = '+' then begin advance( ) ; Τ( ) ; ΕTONOS( ) end; else /* ε */; procedure F( ); /* F (Ε) id */ if input-symbol = 'id' then advance( ) else if input-symbol = '(' then begin advance( ); Ε( ); if input-symbol = ')' then advance( ) else error( ) end else error( );

16 16 Άσκηση αυτοαξιολόγησης 3 / Κεφ. 4 Προσπαθήστε να γράψετε τις αντίστοιχες ρουτίνες για τους κανόνες Τ FΤ' και Τ' * FΤ' ε της γραµµατικής (9) Συχνά µια γραµµατική που γράφει κάποιος είναι ακατάλληλη για Αναδροµική Κατάβαση έστω και αν δεν περιέχει αριστερές αναδροµές. Π.χ. στους κανόνες S if C then S else S if C then S βλέποντας το σύµβολο if δεν µπορούµε να διαλέξουµε ένα µοναδικό κανόνα για να αναπτύξουµε σε S. Γενικότερα, αν A αβ αγ είναι δύο A-κανόνες και η συµβολοσειρά εισόδου αρχίζει µε κάποια µη κενή συµβολοσειρά που παράγεται από το α, δεν ξέρουµε αν πρέπει να αναπτύξουµε το A σε αβ ή σε αγ. Η λύση είναι ο µετασχηµατισµός (αριστερή παραγοντοποίηση) των κανόνων A αβ αγ στους ισοδύναµους: A α A' και A' β γ Παράδειγµα 7 / Κεφ. 4 Έστω η γραµµατική: S icts ictses a C b µετά την αριστερά-παραγοντοποίηση γίνεται: S ictss' a S' es ε C b ΕΝΟΤΗΤΑ 4.6 ΑΝΑΛΥΤΕΣ LL (ΡRΕDΙCΤΙVΕ ΡARSΕRS) Ένας Ρredictive (PP) αναλυτής είναι ένας διαφορετικός τρόπος υλοποίησης της µεθόδου Αναδροµικής Κατάβασης ο οποίος δεν εµπλέκει κλήσεις αναδροµικών ρουτινών. Οι γραµµατικές που ικανοποιούν τις απαιτήσεις ώστε να είναι κατάλληλες για την υλοποίηση ενός αναλυτή Αναδροµικής Κατάβασης λέµε ότι ανήκουν στην κατηγορία LL(1) και εποµένως είναι κατάλληλες και για ένα αναλυτή τύπου LL. Η εξήγηση του συµβολισµού LL(1) σηµαίνει Left to right, Leftmost derivation, one look ahead symbol. Ο LL(1) ή Predictive αναλυτής (στη συνέχεια οι όροι και θα χρησιµοποιούνται σαν συνώνυµοι) υλοποιείται σαν ένα

17 17 αυτόµατο στοίβας ειδικής µορφής. Ένας LL(1) αναλυτής χρησιµοποιεί ένα πίνακα ανίχνευσης (Ρarsing Τable) και µια στοίβα. Η στοίβα περιέχει µια σειρά από σύµβολα της γραµµατικής και στο κάτω µέρος του το σύµβολο $. Aρχικά η στοίβα περιέχει το $ και το αρχικό σύµβολο της γραµµατικής. Ο πίνακας ανίχνευσης είναι ένας πίνακας Μ[A,α], όπου A = µη τερµατικό και α = τερµατικό ή $. Ο Συντακτικός Αναλυτής ελέγχεται από κάποιο πρόγραµµα οδηγό που λειτουργεί ως εξής. Το πρόγραµµα προσδιορίζει το σύµβολο Χ στην κορυφή της στοίβας, και το τρέχον σύµβολο εισόδου a. Τα δυο αυτά σύµβολα καθορίζουν τον τρόπο λειτουργίας του αναλυτή: 1. Aν Χ = a = $, ο αναλυτής σταµατά και ανακοινώνει επιτυχή αναγνώριση. 2. Aν Χ = a $, ο αναλυτής απορρίπτει το Χ από τη στοίβα και προχωράει τον δείκτη εισόδου στο επόµενο σύµβολο εισόδου. 3. Aν Χ a και Χ = τερµατικό, καλείται µια ρουτίνα λάθους. 4. Aν το Χ είναι κάποιο µη τερµατικό, το πρόγραµµα συµβουλεύεται το στοιχείο Μ[Χ,a], το οποίο µπορεί να είναι είτε κάποιος Χ-κανόνας της γραµµατικής ή η επιγραφή µιας ρουτίνας λάθους-διόρθωσης. Aν Μ[Χ,a]={Χ UVW}, το πρόγραµµα αντικαθιστά το Χ στην κορυφή της στοίβας µε το WVU (το U στην κορυφή). Σαν έξοδος γίνεται η σηµασιολογική λειτουργία που καθορίζει η γραµµατική γι' αυτόν τον κανόνα. Προς το παρόν µπορούµε να υποθέσουµε ότι απλώς τυπώνεται ο κανόνας. Aν Μ[Χ,a] = error, το πρόγραµµα καλεί µια ρουτίνα λάθους. Μια διαγραµµατική απεικόνιση του τρόπου λειτουργίας ενός LL(1) συντακτικού αναλυτή δείχνεται στο σχήµα 4.6. ραστηριοτητα 2 / Κεφ. 4 Σας δίνεται η παρακάτω γραµµατική (9) : Ε ΤΕ', Ε' +ΤΕ' ε, Τ FΤ', Τ' *FΤ' ε, F (Ε) id (9) Ένας πίνακας συντακτικής ανάλυσης για την (9) είναι αυτός που δίνεται στο Σχήµα 4.7, όπου οι κενές θέσεις είναι θέσεις για ρουτίνες σφαλµάτων οι δε θέσεις µε την ένδειξη Synch χρησιµοποιούνται για ανάνηψη από συντακτικά λάθη. [ εν θα αναφερθούµε στους αλγόριθµους κατασκευής του πίνακα αυτού. Αν σας ενδιαφέρουν µπορείτε να τους βρείτε στην βιβλιογραφία. Όσον αφορά την ανάνηψη από λάθη συµβουλευθείτε το κεφάλαιο 3 της θεµατικής υποενότητας Εργαστήρια Μεταγλωττιστών αλλά και τη βιβλιογραφία].

18 18 οθέντος λοιπόν του πίνακα και του τρόπου λειτουργίας ενός LL(1) αναλυτή προσπαθήστε να καταγράψετε τα βήµατα του αναλυτή όταν είσοδός του είναι η συµβολοσειρά id+id*id. Προσπαθήστε µόνοι σας και κατόπιν συγκρίνετε την απάντησή σας µε αυτή του Σχήµατος 4.8. Σχήµα 4.6 ιάγραµµα λειτουργίας ενός Predictive Αναλυτή id + * ( ) $. Ε Ε ΤΕ ' Ε ΤΕ ' Synch Synch. Ε ' Ε ' +ΤΕ ' Ε ' ε Ε ' ε. Τ Τ FΤ ' Synch Τ FΤ ' Synch Synch. Τ ' Τ ' ε Τ' *FΤ ' Τ ' ε Τ ' ε. F F id Synch Synch F (Ε) Synch Synch. Σχήµα 4.7 Ο πίνακας συντακτικής ανάλυσης της γραµµατικής (9). Οι είσοδοι Synch αναφέρονται σε σύνολα χαρακτήρων συγχρονισµού για ανάνηψη του Αναλυτού από συντακτικά λάθη. στοίβα είσοδος έξοδος $ Ε id+id*id$ $ Ε' Τ id+id*id$ Ε -> ΤΕ ' $ Ε ' Τ ' F id+id*id$ Τ -> FΤ ' $ Ε' Τ ' id id+id*id$ F -> id $ Ε ' Τ ' +id*id$ $ Ε ' +id*id$ Τ ' -> ε $ Ε ' Τ + +id*id$ Ε ' -> +ΤΕ '

19 19 $ Ε ' Τ id*id$ $ Ε ' Τ ' F id*id$ Τ -> FΤ ' $ Ε ' Τ ' id id*id$ F -> id $ Ε ' Τ ' *id$ $ Ε ' Τ ' F* *id$ Τ ' -> *FΤ ' $ Ε ' Τ ' F id$ $ Ε ' Τ ' id id$ F -> id $ Ε ' Τ ' $ $ Ε ' $ Τ ' ->ε $ $ Ε ' ->ε Σχήµα 4.8 Τα βήµατα του Αναλυτή για είσοδο id+id*id ίνουµε τώρα στο Σχήµα 4.9, σε µορφή ψευδοκώδικα, το πρόγραµµα οδηγό που αντιστοιχεί στη λειτουργία του LL(1) αναλυτή. /*έστω Χ το κορυφαίο στοιχείο της στοίβας και a το επόµενο σύµβολο στην είσοδο */ if X=a=$ then /* να τερµατίσεις. Άδεια στοίβα και άδεια είσοδος */ else repeat begin if Χ είναι τερµατικό or $ then if Χ = a then begin βγάλε το Χ από τη στοίβα και το a από την είσοδο end else error( ) else /* Χ είναι µη τερµατικό σύµβολο */ if Μ[Χ,a] = Χ -> Υ 1 Υ 2...Υ κ then begin βγάλε το Χ από τη στοίβα και βάλε στη στοίβα το Υ 1,Υ 2,...,Υ κ end else error( ) end until Χ = $ */ η στοίβα είναι άδεια */. Σχήµα 4.9 Πρόγραµµα οδηγός για Ρredictive Αναλυτή Άσκηση αυτοαξιολόγησης 4 / Κεφ. 4 Κάθε µια από τις παρακάτω δηλώσεις µπορεί να είναι αληθής ή ψευδής. Προσπαθήστε να αναγνωρίσετε ποια είναι αληθής και ποια ψευδής και φυσικά να εξηγήσετε γιατί.

20 20 α. Οι γραµµατικές που είναι κατάλληλες για αναλυτές τύπου Αναδροµικής Κατάβασης είναι επίσης κατάλληλες και για αναλυτές LL(1). Β. Μερικές γραµµατικές οι οποίες είναι κατάλληλες για συντακτικούς αναλυτές τύπου bottom up είναι επίσης κατάλληλες και για αναλυτές τύπου LL(1). Τυπικό παράδειγµα αποτελεί η γραµµατική 1. Ε Ε + Τ Τ 2. Τ Τ * F F (6) 3. F ( Ε ) id για την οποία κατασκευάσαµε τον πίνακα προτεραιοτήτων του σχήµατος 4.3. ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ Στο κεφάλαιο αυτό µελετήσαµε τις βασικότερες µεθοδολογίες συντακτικής ανάλυσης (ανίχνευσης). Είδαµε πώς µπορούµε να κατασκευάσουµε συντακτικούς αναλυτές του τύπου Operator Precedence, Αναδροµικής Κατάβασης και Predictive LL(1). Ακόµη µελετήσαµε τι είδους µετασχηµατισµούς πρέπει να κάνουµε σε µια γραµµατική ώστε να γίνει κατάλληλη για συντακτικούς αναλυτές της κατηγορίας top down χωρίς οπισθοανίχνευση, δηλαδή για τους αναλυτές Αναδροµικής Κατάβασης και τους predictive LL(1). Σκόπιµα δεν µελετήσαµε καθόλου τους αναλυτές τύπου LR διότι αυτοί αποτελούν ιδιαίτερο αντικείµενο µελέτης στην θεµατική υποενότητα ΘΕ 9.1. ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ Απάντηση άσκησης 1 / Κεφ 4 Για διευκόλυνση σας επαναλαµβάνουµε εδώ τον πίνακα προτεραιοτήτων του Σχήµατος 4.3. Να θυµίσουµε ότι τα τερµατικά σύµβολα της αριστερής στήλης του πίνακα αντιστοιχούν στα σύµβολα στην κορυφή της στοίβας, ενώ τα τερµατικά σύµβολα

21 21 της οριζόντιας γραµµής του πίνακα αντιστοιχούν στα σύµβολα της εισόδου. Παρατηρώντας τον πίνακα βλέπουµε ότι συντακτικό λάθος έχουµε στις εξής περιπτώσεις. (, $ e4 ), ( e3 ), id e3 id, ( e3 id, id e3 $, ) e2 $, $ e1 Μπορούµε τώρα να διακρίνουµε ότι η περίπτωση λάθους που αντιστοιχεί στην ρουτίνα e3 ουσιαστικά είναι η περίπτωση κατά την οποία λείπει ένας τελεστής ανάµεσα στα ζευγάρια )(, )id, id(, και idid. Στην περίπτωση αυτή η ρουτίνα λάθους θα πρέπει: (1) να τυπώσει ένα διαγνωστικό µήνυµα συντακτικού λάθους, (2) να επιχειρήσει να ανανήψει από το λάθος «εισάγοντας» ένα τελεστή στην στοίβα και (3) να ενηµερώσει τον προγραµµατιστή για την πράξη του αυτή. Έτσι ο ψευδοκώδικας για την ρουτίνα e3 θα µπορούσε να είναι όπως ο παρακάτω: e3: print missing operator print assume + is the missing operator push_on_stack( + ) exit Για την ρουτίνα e2 ο ψευδοκώδικας θα µπορούσε να είναι e2: print missing ( print insert ( push_on_stack( ( ) exit Για την ρουτίνα e4 ο ψευδοκώδικας θα µπορούσε να είναι e4: print missing ) print insert ) push_on_stack( ) ) exit Για την ρουτίνα e1 ο ψευδοκώδικας θα µπορούσε να είναι e1: print missing sentence for translation

22 22 print terminate compilation exit Απάντηση άσκησης 2 / Κεφ 4 Κατασκευάζουµε τα σύνολα των συµβολοσειρών που παράγονται από τον αρχικό κανόνα του Α και από τον µετασχηµατισµένο A (δηλαδή κατασκευάζουµε τις παραγωγές του Α και στις δυο περιπτώσεις). A A Aα βa' Aα α βαa' βα α (α) βααa' (β) βααε Βλέπουµε δηλαδή ότι και στις δύο περιπτώσεις παράγονται οι ίδιες συµβολοσειρές : βαα και βααε (=βαα). Απάντηση άσκησης 3 / Κεφ 4 Οι ζητούµενες ρουτίνες Αναδροµικής Κατάβασης της γραµµατικής (9) είναι οι παρακάτω. procedure Τ( ); /* Τ FΤ' */ begin F( ); ΤTONOS( ) end; procedure ΤTONOS( ) ; /* Τ' *FΤ' ε */ if input-symbol '*' then begin advance( ); F( ); ΤTONOS( ) end else /* ε */; Απάντηση άσκησης 4 / Κεφ 4 α. Αν απαντήσατε ότι η δήλωση αυτή είναι αληθής τότε µπράβο σας γιατί φαίνεται ότι έχετε κατανοήσει καλά την ενότητα αυτή.

23 23 Αν απαντήσατε ότι η δήλωση αυτή είναι ψευδής τότε δεν έχετε καταλάβει καλά ότι για τους top down αναλυτές χωρίς οπισθοανίχνευση όπως είναι οι Αναδροµικής Κατάβασης και οι LL(1) οι απαιτήσεις από τις γραµµατικές είναι ίδιες. Απλά ένας LL(1) αναλυτής είναι ένας διαφορετικός τρόπος υλοποίησης της Αναδροµικής Κατάβασης. β. Αν απαντήσατε ότι η δήλωση αυτή είναι ψευδής πάλι µπράβο σας και καλά θα κάνετε να συνεχίσετε µε το επόµενο κεφάλαιο. Αν απαντήσατε ότι η δήλωση αυτή είναι αληθής έχετε κάνει λάθος αλλά µην απογοητεύεστε γιατί ήτανε µια πολύ παραπλανητική ερώτηση. Αυτό διότι η δήλωση: Μερικές γραµµατικές οι οποίες είναι κατάλληλες για συντακτικούς αναλυτές τύπου bottom up είναι επίσης κατάλληλες και για αναλυτές τύπου LL(1) θα µπορούσε να ήταν και αληθής σε κάποιες περιπτώσεις. Όµως το παράδειγµα που σας δίνεται, δηλαδή η γραµµατική (6) 1. Ε Ε + Τ Τ 2. Τ Τ * F F (6) 4. F ( Ε ) id Έχει µεν χρησιµοποιηθεί σε Operator Precedence αναλυτή ο οποίος είναι πράγµατι bottom up αναλυτής, αλλά η (6) έχει τους κανόνες 1 και 2 οι οποίοι είναι αριστερά αναδροµικοί κανόνες πράγµα που σε ένα Operator Precedence αναλυτή δεν δηµιουργεί κανένα πρόβληµα, αλλά δεν επιτρέπεται σε αναλυτές τύπου LL(1). Έτσι η συνολική δήλωση είναι ψευδής.

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

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

Διαβάστε περισσότερα

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

Έστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την Βοηθητικές έννοιες (i) Σύνολα FIRST Έστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την Αν a τότε a FIRST Αν τότε FIRST Νίκος Παπασπύρου,

Διαβάστε περισσότερα

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Συντακτική Ανάλυση II Γλώσσες Προγραμματισμού Μεταγλωττιστές Συντακτική Ανάλυση II Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Εισαγωγή στην ανάλυση από κάτω προς τα πάνω. Οι έννοιες της ελάττωσης

Διαβάστε περισσότερα

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 4 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 4 ο Συντακτική Ανάλυση Επαλήθευση της σύνταξης του προγράμματος Κατασκευή συντακτικού δέντρου Η κεντρική φάση της Μετάφρασης Οδηγούμενης από τη Σύνταξη Από εδώ ξεκινά η παραγωγή

Διαβάστε περισσότερα

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

Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση IV. Εαρινό Εξάμηνο Lec 12 01/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση IV Εαρινό Εξάμηνο 2018 2019 Lec 12 01/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Καθοδική Ανάλυση Ξεκινά από τη αρχή της γραμματικής (ρίζα δένδρου) για να

Διαβάστε περισσότερα

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

Διαβάστε περισσότερα

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

Γραµµατικές για Κανονικές Γλώσσες Κανονικές Γραµµατικές Γραµµατικές για Κανονικές Γλώσσες Ταξινόµηση Γραµµατικών εξιά Παραγωγικές Γραµµατικές εξιά Παραγωγικές Γραµµατικές και NFA Αριστερά Παραγωγικές Γραµµατικές Κανονικές Γραµµατικές Γραµµατικές

Διαβάστε περισσότερα

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

Κεφάλαιο 2: Τυπικές γλώσσες Κεφάλαιο 2: Τυπικές γλώσσες (μέρος 2ο) Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 47 / 216 Γλώσσες χωρίς συμφραζόμενα (i) Γραμματικές χωρίς συμφραζόμενα: Σε κάθε παραγωγή ένα μη τερματικό

Διαβάστε περισσότερα

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

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει

Διαβάστε περισσότερα

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Δεύτερη Σειρά Ασκήσεων 22 Νοεμβρίου 2016 (χειρόγραφη και ηλεκτρονική παράδοση 9 Δεκεμβρίου) Άσκηση 1: Θεωρήστε τη γραμματική με κανόνες: Α B a A a c B B b A b

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης. Γενικές Παρατηρήσεις Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα () Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Υπάρχουν µη κανονικές γλώσσες, π.χ., B = { n n n }. Αυτό

Διαβάστε περισσότερα

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

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata Σύνοψη Προηγούµενου Γλώσσες χωρίς Συµφραζόµενα (2) Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Αυτόµατα Στοίβας Pushdown utomata Ισοδυναµία µε τις Γλώσσες χωρίς Συµφραζόµενα:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Απάντηση: (func endfunc)-([a-za-z])+ Γλώσσες Προγραμματισμού Μεταγλωττιστές Ασκήσεις Επανάληψης ) Περιγράψτε τις κανονικές εκφράσεις που υποστηρίζουν (i) συμβολοσειρές που ξεκινούν με το πρόθεμα "func" ή "endfunc" ακολουθούμενο το σύμβολο

Διαβάστε περισσότερα

3 Αναδροµή και Επαγωγή

3 Αναδροµή και Επαγωγή 3 Αναδροµή και Επαγωγή Η ιδέα της µαθηµατικής επαγωγής µπορεί να επεκταθεί και σε άλλες δοµές εκτός από το σύνολο των ϕυσικών N. Η ορθότητα της µαθηµατικής επαγωγής ϐασίζεται όπως ϑα δούµε λίγο αργότερα

Διαβάστε περισσότερα

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Λογισμικό Συστήματος. Κλειώ Σγουροπούλου Λογισμικό Συστήματος Κλειώ Σγουροπούλου Λογισμικό συστήματος Λειτουργικό σύστημα Μεταφραστές γλώσσας (translators) Διερμηνείς (interpreters) Μεταγλωττιστές (compilers) Εκδότες (editors) Φορτωτές (loaders)

Διαβάστε περισσότερα

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, Εφαρµογές στοιβών Στην ενότητα αυτή θα µελετηθεί η χρήση στοιβών στις εξής εφαρµογές: Αναδροµικές συναρτήσεις Ισοζυγισµός Παρενθέσεων Αντίστροφος Πολωνικός Συµβολισµός ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι

Διαβάστε περισσότερα

ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1

ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1 Εφαρμογές στοιβών Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων Αντίστροφος Πολωνικός Συμβολισμός ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 ΣΥΝΤΑΚΤΙΚΑ ΚΑΤΕΥΘΥΝΟΜΕΝΗ ΜΕΤΑΦΡΑΣΗ

ΚΕΦΑΛΑΙΟ 6 ΣΥΝΤΑΚΤΙΚΑ ΚΑΤΕΥΘΥΝΟΜΕΝΗ ΜΕΤΑΦΡΑΣΗ 1 ΚΕΦΑΛΑΙΟ 6 ΣΥΝΤΑΚΤΙΚΑ ΚΑΤΕΥΘΥΝΟΜΕΝΗ ΜΕΤΑΦΡΑΣΗ Στόχος Στόχος του Κεφαλαίου αυτού είναι να µελετήσουµε την δηµιουργία ενδιάµεσου κώδικα, µε την βοήθεια του σχήµατος Συντακτικά Κατευθυνόµενης Μετάφρασης,

Διαβάστε περισσότερα

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

Κατηγορικές Γραµµατικές Κατηγορικές Γραµµατικές Γραµµατικές Χωρίς περιορισµούς Με συµφραζόµενα Χωρίς συµφραζόµενα Κανονικές Πεπερασµένων επιλογών Κατηγορικές Ενεργοποίησης Γραµµατικές G = { T, N, P, S } Τ: αλφάβητο τερµατικών

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ Τελικές Εξετάσεις Απαντήστε όλα τα θέματα του Μέρους Α και ένα θέμα από

Διαβάστε περισσότερα

1 Συνοπτική ϑεωρία. 1.1 Νόµοι του Προτασιακού Λογισµού. p p p. p p. ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών

1 Συνοπτική ϑεωρία. 1.1 Νόµοι του Προτασιακού Λογισµού. p p p. p p. ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών HY-180: Λογική Εαρινό Εξάµηνο 2016 Κ. Βάρσος Πρώτο Φροντιστήριο 1 Συνοπτική ϑεωρία 1.1 Νόµοι του Προτασιακού Λογισµού 1. Νόµος ταυτότητας : 2. Νόµοι αυτοπάθειας

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων

ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων Αλγόριθµος : Είναι ένα σύνολο βηµάτων, αυστηρά καθορισµένων κι εκτελέσιµων σε πεπερασµένο χρόνο, που οδηγούν στην επίλυση ενός προβλήµατος. Χαρακτηριστικά ενός σωστού

Διαβάστε περισσότερα

Kεφάλαιο 10. Πόσα υποπαίγνια υπάρχουν εδώ πέρα; 2 υποπαίγνια.

Kεφάλαιο 10. Πόσα υποπαίγνια υπάρχουν εδώ πέρα; 2 υποπαίγνια. Kεφάλαιο 10 Θα δούµε ένα δύο παραδείγµατα να ορίσουµε/ µετρήσουµε τα υποπαίγνια και µετά θα λύσουµε και να βρούµε αυτό που λέγεται τέλεια κατά Nash ισορροπία. Εδώ θα δούµε ένα παίγνιο όπου έχουµε µια επιχείρηση

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 3 ΣΥΝΤΑΚΤΙΚΑ ΣΤΟΙΧΕΙΑ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΚΕΦΑΛΑΙΟ 3 ΣΥΝΤΑΚΤΙΚΑ ΣΤΟΙΧΕΙΑ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 1 ΚΕΦΑΛΑΙΟ 3 ΣΥΝΤΑΚΤΙΚΑ ΣΤΟΙΧΕΙΑ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στόχος Στόχος του Κεφαλαίου αυτού είναι να περιγράψει µε σύντοµο τρόπο κάποια βασικά στοιχεία γλωσσών προγραµµατισµού τύπου Context-free (Γραµµατικές

Διαβάστε περισσότερα

Μάθηµα 1. Κεφάλαιο 1o: Συστήµατα. γ R παριστάνει ευθεία και καλείται γραµµική εξίσωση µε δύο αγνώστους.

Μάθηµα 1. Κεφάλαιο 1o: Συστήµατα. γ R παριστάνει ευθεία και καλείται γραµµική εξίσωση µε δύο αγνώστους. Μάθηµα 1 Κεφάλαιο 1o: Συστήµατα Θεµατικές Ενότητες: A. Συστήµατα Γραµµικών Εξισώσεων B. Συστήµατα 3x3 Α. ΣΥΣΤΗΜΑΤΑ ΓΡΑΜΜΙΚΩΝ ΕΞΙΣΩΣΕΩΝ Ορισµοί Κάθε εξίσωση της µορφής α x+β =γ, µε α, β, γ R παριστάνει

Διαβάστε περισσότερα

Ενότητα 7 Ουρές Προτεραιότητας

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα Ουρές Προτεραιότητας ΗΥ4 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type). Έστω

Διαβάστε περισσότερα

Κεφάλαιο 2. Παραγοντοποίηση σε Ακέραιες Περιοχές

Κεφάλαιο 2. Παραγοντοποίηση σε Ακέραιες Περιοχές Κεφάλαιο Παραγοντοποίηση σε Ακέραιες Περιοχές Γνωρίζουµε ότι στο Ÿ κάθε στοιχείο εκτός από το 0 και τα ± γράφεται ως γινόµενο πρώτων αριθµών κατά τρόπο ουσιαστικά µοναδικό Από τη Βασική Άλγεβρα ξέρουµε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 5 ο Έλεγχος Προγράµµατος Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Η εντολή if (Ι) Η εντολή if είναι µία από τις βασικότερες δοµές ελέγχου ροής στη C, αλλά και στις περισσότερες

Διαβάστε περισσότερα

Κεφάλαιο 9 ο Κ 5, 4 4, 5 0, 0 0,0 5, 4 4, 5. Όπως βλέπουµε το παίγνιο δεν έχει καµιά ισορροπία κατά Nash σε αµιγείς στρατηγικές διότι: (ΙΙ) Α Κ

Κεφάλαιο 9 ο Κ 5, 4 4, 5 0, 0 0,0 5, 4 4, 5. Όπως βλέπουµε το παίγνιο δεν έχει καµιά ισορροπία κατά Nash σε αµιγείς στρατηγικές διότι: (ΙΙ) Α Κ Κεφάλαιο ο Μεικτές Στρατηγικές Τώρα θα δούµε ένα παράδειγµα στο οποίο κάθε παίχτης έχει τρεις στρατηγικές. Αυτό θα µπορούσε να είναι η µορφή που παίρνει κάποιος µετά που έχει απαλείψει όλες τις αυστηρά

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 1 / 45 Εισαγωγή Ο δυναµικός

Διαβάστε περισσότερα

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

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΕΠΑΛ ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΕΠΑΛ ΘΕΜΑ Α Α.1 Να χαρακτηρίσετε σωστή (Σ) ή λανθασμένη (Λ) καθεμία από τις παρακάτω προτάσεις (Μονάδες 10) 1. Ένας αλγόριθμος μπορεί να έχει άπειρα βήματα

Διαβάστε περισσότερα

Γραµµική Άλγεβρα. Εισαγωγικά. Μέθοδος Απαλοιφής του Gauss

Γραµµική Άλγεβρα. Εισαγωγικά. Μέθοδος Απαλοιφής του Gauss Γραµµική Άλγεβρα Εισαγωγικά Υπάρχουν δύο βασικά αριθµητικά προβλήµατα στη Γραµµική Άλγεβρα. Το πρώτο είναι η λύση γραµµικών συστηµάτων Aλγεβρικών εξισώσεων και το δεύτερο είναι η εύρεση των ιδιοτιµών και

Διαβάστε περισσότερα

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής Αναδροµή Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής 1 Αναδροµή Βασική έννοια στα Μαθηµατικά και στην Πληροφορική.

Διαβάστε περισσότερα

Κεφάλαιο 3β. Ελεύθερα Πρότυπα (µέρος β)

Κεφάλαιο 3β. Ελεύθερα Πρότυπα (µέρος β) Κεφάλαιο 3β Ελεύθερα Πρότυπα (µέρος β) Ο σκοπός µας εδώ είναι να αποδείξουµε το εξής σηµαντικό αποτέλεσµα. 3.3.6 Θεώρηµα Έστω R µια περιοχή κυρίων ιδεωδών, F ένα ελεύθερο R-πρότυπο τάξης s < και N F. Τότε

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΙΑΧΕΙΡΙΣΗ Ε ΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ (Β ΕΞΑΜΗΝΟ) ιδάσκων: Επ. Καθηγητής Γρηγόρης Χονδροκούκης ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1) Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ασυμφραστικές Γραμματικές (2.1) Τυπικός Ορισμός Σχεδιασμός Ασυμφραστικών Γραμματικών

Διαβάστε περισσότερα

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

Μεταγλωττιστές. Εργαστήριο 5. Εισαγωγή στο BISON. Γεννήτρια Συντακτικών Αναλυτών. 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση Μεταγλωττιστές Εργαστήριο 5 Εισαγωγή στο BISON Γεννήτρια Συντακτικών Αναλυτών 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Φάσεις Μεταγλώττισης

Διαβάστε περισσότερα

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

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 1 η : Parsers Συντακτική Ανάλυση για ΓΧΣ Οι τεχνικές συντακτικής ανάλυσης κατηγοριοποιούνται με βάση διάφορα κριτήρια: Κατεύθυνση ανάλυσης μη τερματικών συμβόλων Σειρά επιλογής

Διαβάστε περισσότερα

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Άσκηση 1 (α) Έστω Α(n) και Κ(n) ο αριθμός των ακμών και ο αριθμός των κόμβων ενός αυστηρά δυαδικού δένδρου με n φύλλα. Θέλουμε να αποδείξουμε για κάθε n 1 την πρόταση

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Triggers, Stored procedures Γιώργος Μαρκοµανώλης Περιεχόµενα Triggers-Ενηµέρωση δεδοµένων άλλων πινάκων... 1 Ασφάλεια...

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2010 Ι ΑΣΚΩΝ: ΑΝΤΩΝΙΟΣ ΣΑΒΒΙ ΗΣ ΒΑΣΙΚΗ ΕΡΓΑΣΙΑ ΦΑΣΗ 2η από 5 Ανάθεση: Πέµπτη 15 Απριλίου 2010, 11:00 (πρωί)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

ΣΕΙΡΕΣ TAYLOR. Στην Ενότητα αυτή θα ασχοληθούµε µε την προσέγγιση συναρτήσεων µέσω πολυωνύµων. Πολυώνυµο είναι κάθε συνάρτηση της µορφής:

ΣΕΙΡΕΣ TAYLOR. Στην Ενότητα αυτή θα ασχοληθούµε µε την προσέγγιση συναρτήσεων µέσω πολυωνύµων. Πολυώνυµο είναι κάθε συνάρτηση της µορφής: ΣΕΙΡΕΣ TAYLOR Στην Ενότητα αυτή θα ασχοληθούµε µε την προσέγγιση συναρτήσεων µέσω πολυωνύµων Πολυώνυµο είναι κάθε συνάρτηση της µορφής: p( ) = a + a + a + a + + a, όπου οι συντελεστές α i θα θεωρούνται

Διαβάστε περισσότερα

Γλώσσες που περιγράφονται από Κανονικές Εκφράσεις

Γλώσσες που περιγράφονται από Κανονικές Εκφράσεις Κανονικές Εκφράσεις Στοιχειώδεις Κανονικές Εκφράσεις Κανονικές Εκφράσεις Γλώσσες που περιγράφονται από Κανονικές Εκφράσεις ηµιουργία Κανονικών Εκφράσεων Παραδείγµατα Κανονικών Εκφράσεων Τις Κανονικές εκφράσεις

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό. Σύντοµες Σηµειώσεις. Γιώργος Μανής

Εισαγωγή στον Προγραµµατισµό. Σύντοµες Σηµειώσεις. Γιώργος Μανής Εισαγωγή στον Προγραµµατισµό Σύντοµες Σηµειώσεις Γιώργος Μανής Νοέµβριος 2012 Αλγόριθµοι και Λογικά ιαγράµµατα Αλγόριθµος λέγεται µία πεπερασµένη διαδικασία καλά ορισµένων ϐηµάτων µου ακολουθείται για

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν Επαναληπτικές δοµές Η λογική των επαναληπτικών διαδικασιών εφαρµόζεται όπου µία ακολουθία εντολών εφαρµόζεται σε ένα σύνολο περιπτώσεων που έχουν κάτι κοινό. Όταν ψάχνουµε θέση για να παρκάρουµε κοντά

Διαβάστε περισσότερα

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες: Άσκηση 5Α_5 26/3/2003 11.5. Άσκηση 5A - [αναγνώριση αντικειµένων-διάγραµµα κλάσεων] [Σε αντικατάσταση της άσκησης 5 του κεφαλαίου 11] 11.5.1. Περιγραφή Η άσκηση αυτή είναι η πρώτη από µία σειρά ασκήσεων

Διαβάστε περισσότερα

Επαναληπτικό ιαγώνισµα Πληροφορικής Γ Γυµνασίου Γιώργος Λιακέας Σχολικός Σύµβουλος Πληροφορικής Ερωτήσεις

Επαναληπτικό ιαγώνισµα Πληροφορικής Γ Γυµνασίου Γιώργος Λιακέας Σχολικός Σύµβουλος Πληροφορικής Ερωτήσεις Επαναληπτικό ιαγώνισµα Πληροφορικής Γ Γυµνασίου (νέο βιβλίο Πληροφορικής Γυµνασίου Αράπογλου, Μαβόγλου, Οικονοµάκου, Φύτρου) Γιώργος Λιακέας Σχολικός Σύµβουλος Πληροφορικής Ερωτήσεις 1. Εξηγήσετε και συνδέστε

Διαβάστε περισσότερα

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD) Η Γλώσσα Pascal Χαρακτηριστικά Τύποι Δεδοµένων Δοµή προγράµµατος 1. Βασικές έννοιες Χαρακτηριστικά της γλώσσας Pascal Γλώσσα προγραµµατισµού Συντακτικό Σηµασιολογία Αλφάβητο της γλώσσας Pascal (Σύνολο

Διαβάστε περισσότερα

ΑΛΓΕΒΡΙΚΕΣ ΟΜΕΣ Ι. Ασκησεις - Φυλλαδιο 2

ΑΛΓΕΒΡΙΚΕΣ ΟΜΕΣ Ι. Ασκησεις - Φυλλαδιο 2 ΑΛΓΕΒΡΙΚΕΣ ΟΜΕΣ Ι Τµηµα Β Ασκησεις - Φυλλαδιο 2 ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/algebraicstructuresi/asi2016/asi2016.html Πέµπτη 3 Μαρτίου 2016 Αν (G, ) είναι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Ερωτήσεις Σωστό - Λάθος 1. Ο αλγόριθµος πρέπει να τερµατίζεται µετά από εκτέλεση πεπερασµένου αριθµού εντολών. 2. Η είσοδος σε έναν αλγόριθµο µπορεί να είναι έξοδος σε έναν άλλο αλγόριθµο. 3. Ένας αλγόριθµος

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

Διαβάστε περισσότερα

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2011-2012 Γιάννης Γαροφαλάκης, Καθηγητής Αθανάσιος Ν.Νικολακόπουλος, Υποψήφιος Διδάκτορας 28 Μαρτίου 2012 Περίληψη Σκοπός της παρούσας

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ ΘΕΜΑ ο (2.5 µονάδες) ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ Τελικές εξετάσεις Παρασκευή 9 Ιανουαρίου 2007 5:00-8:00 εδοµένου ότι η

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 3 ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. nn n n

ΚΕΦΑΛΑΙΟ 3 ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. nn n n ΚΕΦΑΛΑΙΟ 3 ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 Ο αλγόριθµος Gauss Eστω =,3,, µε τον όρο γραµµικά συστήµατα, εννοούµε συστήµατα εξισώσεων µε αγνώστους της µορφής: a x + + a x = b a x + + a x = b a

Διαβάστε περισσότερα

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου

Διαβάστε περισσότερα

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD Σε ορισµένες περιπτώσεις είναι ιδιαίτερα χρήσιµη η δηµιουργία ιστοσελίδων ενηµερωτικού περιεχοµένου οι οποίες στη συνέχεια µπορούν να δηµοσιευθούν σε κάποιο τόπο

Διαβάστε περισσότερα

Γυµ.Ν.Λαµψάκου Α Γυµνασίου Γεωµ.Β2.6 γωνίες από 2 παράλληλες + τέµνουσα 19/3/10 Φύλλο εργασίας

Γυµ.Ν.Λαµψάκου Α Γυµνασίου Γεωµ.Β2.6 γωνίες από 2 παράλληλες + τέµνουσα 19/3/10 Φύλλο εργασίας Φύλλο εργασίας Mπορείτε να βρείτε τη γωνία κάβων; ραστηριότητα Ένα δεξαµενόπλοιο που στο σχήµα είναι στο σηµείο Β, πλέει προς την είσοδο µιας διώρυγας µε την βοήθεια δύο ρυµουλκών που απεικονίζονται µε

Διαβάστε περισσότερα

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Κεφάλαιο 3 Αλγόριθµοι Τυφλής Αναζήτησης Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Αλγόριθµοι Τυφλής Αναζήτησης Οι αλγόριθµοι τυφλής αναζήτησης (blind

Διαβάστε περισσότερα

Κεφάλαιο 5 Οι χώροι. Περιεχόµενα 5.1 Ο Χώρος. 5.3 Ο Χώρος C Βάσεις Το Σύνηθες Εσωτερικό Γινόµενο Ασκήσεις

Κεφάλαιο 5 Οι χώροι. Περιεχόµενα 5.1 Ο Χώρος. 5.3 Ο Χώρος C Βάσεις Το Σύνηθες Εσωτερικό Γινόµενο Ασκήσεις Σελίδα 1 από 6 Κεφάλαιο 5 Οι χώροι R και C Περιεχόµενα 5.1 Ο Χώρος R Πράξεις Βάσεις Επεξεργασµένα Παραδείγµατα Ασκήσεις 5. Το Σύνηθες Εσωτερικό Γινόµενο στο Ορισµοί Ιδιότητες Επεξεργασµένα Παραδείγµατα

Διαβάστε περισσότερα

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα

Διδάσκων: Κωνσταντίνος Κώστα Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος

Διαβάστε περισσότερα

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Θεωρία 1. Κύκλος Ανάπτυξης Προγράµµατος 1. Συγγραφή και Μεταγλώττιση ενός προγράµµατος 2. Εκτέλεση του προγράµµατος

Διαβάστε περισσότερα

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

Διαβάστε περισσότερα

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ Εισαγωγή στην επιστήµη των υπολογιστών Πράξεις µε µπιτ 1 Πράξεις µε µπιτ 2 Αριθµητικές Πράξεις σε Ακέραιους Πρόσθεση, Αφαίρεση, Πολλαπλασιασµός, Διαίρεση 3 Πρόσθεση στη µορφή συµπληρώµατος ως προς δύο

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως

Διαβάστε περισσότερα

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ Ι (ΠΕΡΙΤΤΟΙ) Λυσεις Ασκησεων - Φυλλαδιο 2

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ Ι (ΠΕΡΙΤΤΟΙ) Λυσεις Ασκησεων - Φυλλαδιο 2 ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ Ι Τµηµα Β (ΠΕΡΙΤΤΟΙ) Λυσεις Ασκησεων - Φυλλαδιο 2 ιδασκων: Α Μπεληγιάννης Ιστοσελιδα Μαθηµατος : http://usersuoigr/abeligia/linearalgebrai/lai2017/lai2017html Παρασκευή 20 Οκτωβρίου 2017

Διαβάστε περισσότερα

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Αριθµητική Ανάλυση 1 εκεµβρίου / 43 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 1 / 43 Κεφ.5. Αριθµητικός Υπολογισµός Ιδιοτιµών και Ιδιοδιανυσµάτων ίνεται ένας πίνακας A C n n και Ϲητούνται να προσδιορισθούν οι

Διαβάστε περισσότερα

o AND o IF o SUMPRODUCT

o AND o IF o SUMPRODUCT Πληροφοριακά Εργαστήριο Management 1 Information Συστήματα Systems Διοίκησης ΤΕΙ Τμήμα Ελεγκτικής Ηπείρου Χρηματοοικονομικής (Παράρτημα Πρέβεζας) και Αντικείµενο: Μοντελοποίηση προβλήµατος Θέµατα που καλύπτονται:

Διαβάστε περισσότερα

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

Συντακτικός Αναλυτής. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Συντακτικός Αναλυτής Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Οι Φάςεισ τησ Μεταγλώττιςησ λεκτική ανάλυση ςυντακτικι ανάλυςθ Πίνακασ Συμβόλων ςθμαςιολογικι ανάλυςθ παραγωγι ενδιάμεςου κϊδικα Διαχείριςθ

Διαβάστε περισσότερα

Επίλυση Γραµµικών Συστηµάτων

Επίλυση Γραµµικών Συστηµάτων Κεφάλαιο 3 Επίλυση Γραµµικών Συστηµάτων 31 Εισαγωγή Αριθµητική λύση γενικών γραµµικών συστηµάτων n n A n n x n 1 b n 1, όπου a 11 a 12 a 1n a 21 a 22 a 2n A [a i j, x a n1 a n2 a nn x n, b b 1 b 2 b n

Διαβάστε περισσότερα

Σημειωματάριο Τετάρτης 18 Οκτ. 2017

Σημειωματάριο Τετάρτης 18 Οκτ. 2017 Σημειωματάριο Τετάρτης 18 Οκτ. 2017 Περισσότερα για λίστες και ανακύκλωση Είδαμε σήμερα διάφορα προβλήματα και λύσεις για λίστες. Είδαμε επίσης την ανακύκλωση while. Στο επόμενο βλέπουμε πώς μπορούμε να

Διαβάστε περισσότερα

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:

Διαβάστε περισσότερα

Πρόβληµα 2 (12 µονάδες)

Πρόβληµα 2 (12 µονάδες) ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ, 2015-2016 ΔΙΔΑΣΚΟΝΤΕΣ: Ε. Μαρκάκης, Θ. Ντούσκας Λύσεις 2 ης Σειράς Ασκήσεων Πρόβληµα 1 (12 µονάδες) 1) Υπολογίστε τον

Διαβάστε περισσότερα

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ Εισαγωγή στην επιστήµη των υπολογιστών Πράξεις µε µπιτ 1 Πράξεις µε µπιτ 2 Αριθµητικές Πράξεις σε Ακέραιους Πρόσθεση, Αφαίρεση, Πολλαπλασιασµός, Διαίρεση Ο πολλαπλασιασµός και η διαίρεση στο επίπεδο του

Διαβάστε περισσότερα

Κεφάλαιο 6 Παράγωγος

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

Διαβάστε περισσότερα

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w w = (ab) 2m b m (ba) m, m 0 } (β) Να διατυπώσετε

Διαβάστε περισσότερα

Προγραµµατισµός 1 Ταξινόµηση - Αναζήτηση

Προγραµµατισµός 1 Ταξινόµηση - Αναζήτηση Προγραµµατισµός 1 Ταξινόµηση - Αναζήτηση 1 Ταξινόµηση! Δεδοµένα: Δίνεται ένας πίνακας data από N ακεραίους! Ζητούµενο: Να ταξινοµηθούν τα περιεχόµενα σε αύξουσα αριθµητική σειρά:!i : 0 data[i]

Διαβάστε περισσότερα

Αριθµητική Ανάλυση. Ενότητα 5 Προσέγγιση Συναρτήσεων. Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών,

Αριθµητική Ανάλυση. Ενότητα 5 Προσέγγιση Συναρτήσεων. Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Αριθµητική Ανάλυση Ενότητα 5 Προσέγγιση Συναρτήσεων Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αριθµητική Ανάλυση - Ενότητα 5 1 / 55 Παρεµβολή Ας υποθέσουµε ότι δίνονται

Διαβάστε περισσότερα

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» (ε) Κάθε συγκλίνουσα ακολουθία άρρητων αριθµών συγκλίνει σε άρρητο αριθµό.

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» (ε) Κάθε συγκλίνουσα ακολουθία άρρητων αριθµών συγκλίνει σε άρρητο αριθµό. Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» Κεφάλαιο : Ακολουθίες πραγµατικών αριθµών Α Οµάδα Εξετάστε αν οι παρακάτω προτάσεις είναι αληθείς ή ψευδείς αιτιολογήστε πλήρως την απάντησή σας α Κάθε

Διαβάστε περισσότερα

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

Θέματα Μεταγλωττιστών Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 1 η : Parsers Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Συντακτική Ανάλυση για ΓΧΣ Οι τεχνικές συντακτικής ανάλυσης κατηγοριοποιούνται

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3) Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Μη Ασυμφραστικές Γλώσσες (2.3) Λήμμα Άντλησης για Ασυμφραστικές Γλώσσες Παραδείγματα

Διαβάστε περισσότερα

< 1 για κάθε k N, τότε η σειρά a k συγκλίνει. +, τότε η η σειρά a k αποκλίνει.

< 1 για κάθε k N, τότε η σειρά a k συγκλίνει. +, τότε η η σειρά a k αποκλίνει. Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» Κεφάλαιο 3: Σειρές πραγµατικών αριθµών Α Οµάδα. Εστω ( ) µια ακολουθία πραγµατικών αριθµών. Εξετάστε αν οι παρακάτω προτάσεις είναι αληθείς ή ψευδείς (αιτιολογήστε

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 3: Συνθήκες Αλυσίδων

ΚΕΦΑΛΑΙΟ 3: Συνθήκες Αλυσίδων ΚΕΦΑΛΑΙΟ 3: Συνθήκες Αλυσίδων Μελετάµε εδώ τη συνθήκη της αύξουσας αλυσίδας υποπροτύπων και τη συνθήκη της φθίνουσας αλυσίδας υποπροτύπων. Αυτές συνδέονται µεταξύ τους µε την έννοια της συνθετικής σειράς

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 21: Υπολογισμοί ΜΤ - Αναδρομικές Γλώσσες Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

Πρόβληµα 2 (15 µονάδες)

Πρόβληµα 2 (15 µονάδες) ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ, 2013-2014 ΔΙΔΑΣΚΩΝ: Ε. Μαρκάκης Πρόβληµα 1 (5 µονάδες) 2 η Σειρά Ασκήσεων Προθεσµία Παράδοσης: 19/1/2014 Υπολογίστε

Διαβάστε περισσότερα