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

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

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

Transcript

1 Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Δεύτερη Σειρά Ασκήσεων 22 Νοεμβρίου 2016 Μέρος Α. (χειρόγραφη και ηλεκτρονική παράδοση 9 Δεκεμβρίου) Άσκηση 1: Θεωρήστε τη γραμματική με κανόνες: Α B a A a c B B b A b d όπου a, b, c και d είναι τερματικά σύμβολα. Α. Παρατηρήστε τη γραμματική και εξηγήστε γιατί δεν είναι LL(1). Β. Να μετασχηματίσετε τη γραμματική σε μια νέα, ισοδύναμή της, απαλείφοντας πλήρως τα προφανή χαρακτηριστικά που την κάνουν να μην είναι LL(1). Γ. Υπολογίστε και εξετάστε τα σύνολα FIRST και FOLLOW της νέας γραμματικής, ώστε να βρείτε αν αυτή είναι LL(1). Σε περίπτωση που η νέα γραμματική δεν είναι LL(1), να εξετάσετε αν αυτή μπορεί να είναι LL(k) για κάποιο k. Δ. Να κατασκευάσετε τον πίνακα ΣΑ LL(1) για τη νέα γραμματική, επιτρέποντας πολλαπλές κινήσεις σε κάθε θέση, ώστε να εντοπίσετε όλες τις συγκρούσεις που πιθανά εμφανίζονται. Για κάθε περίπτωση σύγκρουσης, εξηγήστε αν αυτή μπορεί να επιλυθεί με επιλογή μιας από τις κινήσεις, αν δηλαδή διαγράφοντας τις υπόλοιπες κινήσεις προκύπτει ντετερμινιστικός πίνακας ΣΑ ο οποίος όμως να μπορεί να αναγνωρίσει τη γλώσσα της γραμματικής. Ε. Με βάση τον πίνακα που κατασκευάσατε, να περιγράψετε τα βήματα για την αναγνώριση ή απόρριψη των συμβολοσειρών daabbbaaa και cbbabbaaa. Ειδικότερα, αν ο πίνακας είναι μη ντετερμινιστικός επειδή δεν καταφέρατε να επιλύσετε κάποια σύγκρουση, χρησιμοποιήστε οπισθοδρόμηση, ώστε να δοκιμάσετε όσες επιλογές απαιτούνται πριν αποφασίσετε. Άσκηση 2: Θεωρήστε τη γραμματική που σας δόθηκε στην προηγούμενη άσκηση, καθώς και τη νέα που βρήκατε μετά τους μετασχηματισμούς. Α. Να κατασκευάσετε πλήρως τις καταστάσεις ΣΑ LR(0), SLR(1), LALR(1) και LR(1) των δύο γραμματικών, και να εξετάσετε αν αυτές ανήκουν σε μία ή περισσότερες από τις τέσσερεις κατηγορίες ΣΑ τύπου LR. Εντοπίστε όλες τις συγκρούσεις που τυχόν εμφανίζονται στις καταστάσεις, χωρίς να κατασκευάσετε κανέναν πίνακα ΣΑ. Β. Για όποια από τις δύο γραμματικές δεν είναι LR(1), να εξηγήσετε αν μπορεί να είναι LR(k) για κάποιο k ή όχι και γιατί. Διαφορετικά, να κατασκευάσετε τον απλούστερο σύμφωνα με την πιο πάνω σειρά πίνακα ΣΑ από τους τέσσερεις τύπους LR που μπορεί να κατασκευαστεί ντετερμινιστικά για την κάθε γραμματική. Γ. Για όποια από τις δύο γραμματικές δεν είναι LR(1), να κατασκευάσετε τον πίνακα ΣΑ LR(1) με πολλαπλές κινήσεις στις θέσεις όπου υπάρχει σύγκρουση, και στη συνέχεια να εξε-

2 2 τάσετε αν επιλέγοντας μία κίνηση ανά περίπτωση μπορείτε να επιλύσετε τη σύγκρουση, αν δηλαδή διαγράφοντας τις υπόλοιπες κινήσεις προκύπτει ντετερμινιστικός πίνακας ΣΑ ο ο- ποίος να μπορεί να αναγνωρίσει τη γλώσσα της γραμματικής. Δ. Με βάση τους δύο πίνακες που κατασκευάσατε, να περιγράψετε τα βήματα για την αναγνώριση ή απόρριψη των συμβολοσειρών daabbbaaa και cbbabbaaa. Ειδικότερα, αν ο πίνακας είναι μη ντετερμινιστικός επειδή δεν καταφέρατε να επιλύσετε κάποια σύγκρουση, χρησιμοποιήστε οπισθοδρόμηση, ώστε να δοκιμάσετε όσες επιλογές απαιτούνται πριν αποφασίσετε. Άσκηση 3: Θεωρήστε τη γραμματική: D ( X E ; F ) X ( Χ F ; X Ε ) E Y a F Y b Y όπου (, ), a, b και ; τα τερματικά σύμβολα αυτής. Α. Εξετάστε με τη σειρά αν η παραπάνω γραμματική είναι LL(1), LR(0), SLR(1), LALR(1) και LR(1), μόνο με βάση τις συγκρούσεις FIRST/FIRST και FIRST/FOLLOW ή ολίσθησης/ελάττωσης και ελάττωσης/ελάττωσης, χωρίς να προσπαθήσετε να κατασκευάσετε κανέναν πίνακα ΣΑ. Β. Κατασκευάστε τον ντετερμινιστικό πίνακα ΣΑ για κάθε περίπτωση που αυτό είναι δυνατό, και δείξτε τις κινήσεις του αντίστοιχου ΣΑ για την αναγνώριση της συμβολοσειράς: (b;(b;;b;(;;b;b;(a) Γ. Δείξτε ότι κάθε γραμματική LL(1) είναι και LR(1). Άσκηση 4: Θεωρήστε τη γραμματική: Ε Ε + Τ T T Τ + T * F F F F * ( E ) a όπου a, (, ), * και + τα τερματικά σύμβολα αυτής. Α. Δείξτε με τη σειρά ότι η παραπάνω γραμματική δεν είναι LL(1), LR(0), SLR(1), LR(1) ούτε LALR(1), χωρίς να κατασκευάσετε πίνακες ΣΑ. Β. Για την περίπτωση LL(1): Μετασχηματίστε τη γραμματική, απαλείφοντας τα προφανή χαρακτηριστικά που την κάνουν να μην είναι LL(1), και δείξτε ότι και πάλι προκύπτει γραμματική που δεν είναι LL(1). Στη συνέχεια, κατασκευάστε τον πίνακα ΣΑ LL(1), υποδεικνύοντας τα κελιά στα οποία εμφανίζεται σύγκρουση. Για τα κελιά αυτά, προσπαθήστε να επιλέξετε κανόνα με βάση το αμέσως επόμενο προπορευόμενο σύμβολο, δημιουργώντας έτσι μικρότερα εσωτερικά κελιά για κάθε διαφορετικό επόμενο σύμβολο. Αν οι συγκρούσεις επιλυθούν με αυτό τον τρόπο, θα έχετε δείξει ότι η νέα γραμματική είναι LL(2)! Γ. Για τις περιπτώσεις SLR(1), LALR(1) και LR(1): Κατασκευάστε τους αντίστοιχους πίνακες ΣΑ, υποδεικνύοντας τα κελιά στα οποία εμφανίζεται σύγκρουση. Για τα κελιά αυτά, προσπαθήστε να επιλέξετε κίνηση με βάση το αμέσως επόμενο προπορευόμενο σύμβολο, δημιουργώντας όπως και πριν μικρότερα εσωτερικά κελιά για κάθε διαφορετικό επόμενο σύμβολο. Στον ΣΑ SLR μια τέτοια επιλογή ελάττωσης θα γίνεται για όλα τα ζεύγη διαδοχικών συμ-

3 3 βόλων που μπορούν να ακολουθούν το μη τερματικό σύμβολο του αριστερού μέλους. Για τον ΣΑ LR(1) - και κατ' επέκταση και τον LALR(1) - η επιλογή ελάττωσης θα γίνεται για τα α- κριβή ζεύγη διαδοχικών συμβόλων που μπορούν να ακολουθούν το μη τερματικό σύμβολο του αριστερού μέλους, όπως αυτά προκύπτουν από την εφαρμογή της συνάρτησης CLO- SURE. Αν οι συγκρούσεις επιλυθούν με αυτό τον τρόπο, θα έχετε δείξει ότι η γραμματική είναι SLR(2), LALR(2) ή LR(2), αντίστοιχα! Δ. Για κάθε περίπτωση ΣΑ στον οποίο επιλύσατε τις συγκρούσεις, δείξτε τις κινήσεις του για την αναγνώριση της συμβολοσειράς: (a++a*)+*a+a+*(a**+a+)* Υπόδειξη: Ακόμα και στις περιπτώσεις που χρησιμοποιούμε δύο προπορευόμενα, η είσοδος καταναλώνεται πάντα με ρυθμό ενός συμβόλου με κάθε απορρόφηση ή ολίσθηση. Άσκηση 5: Μια απλή γλώσσα συναρτησιακού προγραμματισμού υποστηρίζει τις εξής δομές εκφράσεων: λ ID 1 ID n : e συνάρτηση με όρισμα μια λίστα n μεταβλητών και σώμα την έκφραση e e 1 OP e 2 εφαρμογή τελεστή OP με ορίσματα τις εκφράσεις e 1 και e 2 e e 1 e n εφαρμογή της συνάρτησης e με όρισμα μια λίστα n εκφράσεων ( e ) παρενθέσεις για την ομαδοποίηση των εκφράσεων ID μεταβλητές CONST σταθερές Η άτυπη σύνταξη της γλώσσας καθορίζει ότι: Στη δομή λ... : e το σώμα της συνάρτησης εκτείνεται όσο το δυνατόν περισσότερο. Η εφαρμογή συνάρτησης έχει υψηλότερη προτεραιότητα από τους τελεστές OP. Οι τελεστές OP δίνονται αναλυτικά μαζί με την προτεραιότητα και την προσεταιριστικότητά τους στον παρακάτω πίνακα: Λεκτική Μονάδα Τελεστής Προτεραιότητα Προσεταιριστικότητα OR ελάχιστη αριστερή AND && αριστερή REL <, >, >=, <= καμία EQ ==,!= καμία ADD +, - αριστερή MUL *, / αριστερή POW ^ μέγιστη δεξιά Α. Να δώσετε μια διφορούμενη γραμματική για τις δομές εκφράσεων της παραπάνω γλώσσας που να αγνοεί τους άτυπους κανόνες. Εξηγήστε γιατί η γραμματική είναι διφορούμενη. Β. Να δώσετε μια μη διφορούμενη γραμματική, η οποία να περιλαμβάνει αναλυτικότερα τους τελεστές της γλώσσας, λαμβάνοντας πλήρως υπόψη την προτεραιότητα και την προσεταιριστικότητά τους, και να λαμβάνει ακόμα υπόψη και τους υπόλοιπους άτυπους κανόνες της γλώσσας. Γ. Να εξετάσετε αν η γραμματική του ερωτήματος B είναι LL(1). Αν ναι, τότε δώστε τον πίνακα συντακτικής ανάλυσης LL(1) γι αυτή τη γραμματική. Διαφορετικά, να εξετάσετε αν αυτή μπορεί να μετατραπεί σε LL(1), και αν ναι, δώστε τον πίνακα συντακτικής ανάλυσης LL(1) για τη μετασχηματισμένη γραμματική. Δ. Να εξετάσετε αν η γραμματική του ερωτήματος Β είναι SLR(1). Αν ναι, τότε δώστε τον πίνακα συντακτικής ανάλυσης SLR(1) γι αυτή τη γραμματική. Διαφορετικά, να εξετάσετε αν αυτή είναι LR(1), και αν ναι, δώστε τον πίνακα συντακτικής ανάλυσης LR(1) γι αυτή τη γραμματική.

4 4 Ε. Να εξηγήσετε γιατί η γραμματική του ερωτήματος Α δεν είναι SLR(1) ούτε LR(1). Μολαταύτα, να κατασκευάσετε τον πίνακα συντακτικής ανάλυσης SLR(1) για τη γραμματική αυτή, υποδεικνύοντας όλες τις συγκρούσεις που εμφανίζονται σε αυτόν. Εξηγήστε με ποια κριτήρια μπορείτε να υλοποιήσετε ντετερμινιστικό συντακτικό αναλυτή τύπου LR με βάση τον πίνακα αυτόν, χρησιμοποιώντας τους άτυπους κανόνες της γλώσσας, και δείξτε τη λειτουργία του για την αναγνώριση της συμβολοσειράς: (x<y&&3+z*(λ x y:x+y*y-(λ x:1/x-1)(x+y)) 2 5^(λ x:x+1/x) 3^2/2>w) Άσκηση 6: Θεωρήστε τη γραμματική ενός συνόλου αριθμητικών εκφράσεων που αποτελούν συναρτήσεις μίας μεταβλητής x: Ε E + E E * E Ε ^ iconst ( E ) x iconst όπου x, iconst, +, *, ^, ( και ) τερματικά σύμβολα. Το τερματικό σύμβολο iconst παριστάνει μη προσημασμένες ακέραιες σταθερές, η τιμή των οποίων λαμβάνεται από κάποιο λεκτικό αναλυτή μέσω ενός κατηγορήματος val. Εάν τα τερματικά σύμβολα +, * και ^ παριστάνουν τις πράξεις πρόσθεσης, πολλαπλασιασμού και ύψωσης σε δύναμη, αντίστοιχα, με τις συνήθεις προτεραιότητες και προσεταιριστικότητες της άλγεβρας, ορίστε κατηγορήματα για το μη τερματικό σύμβολο Ε και κανόνες αποτίμησης αυτών σε μορφή ψευδοκώδικα, ώστε η προκύπτουσα κατηγορική γραμματική να υπολογίζει την έκφραση της πρώτης παραγώγου της αριθμητικής έκφρασης που δίνεται ως είσοδος. Στη συνέχεια, βελτιώστε τους κανόνες αποτίμησης, ώστε η τελική μορφή της παραγώγου να είναι πολυώνυμο ως προς x με εκθέτες σε φθίνουσα σειρά, με τη μέγιστη δυνατή απλοποίηση στις τιμές των συντελεστών και των εκθετών. Για παράδειγμα, με είσοδο την έκφραση: (x^3+4)*x+x^2*3 η γραμματική με τους βελτιωμένους κανόνες πρέπει να εκτυπώνει: 4*x^3+6*x+4 ενώ η αρχική προσέγγιση που κάνετε θα μπορεί να εκτυπώνει: (3*x^2+0)*x+(x^3+4)*1+2*x^1*3 ή ο,τιδήποτε ισοδύναμο. Δείξτε σε μορφή δέντρου τη διαδικασία αποτίμησης των κατηγορημάτων για κάθε μία από τις δύο υλοποιήσεις κατηγορικής γραμματικής, με είσοδο την παραπάνω έκφραση. Υπόδειξη: Υπενθυμίζεται ότι: (f+g) = f +g, (f*g) = f *g+f*g, και ότι (f n ) = n*f n-1 *f. Χρησιμοποιήστε δύο σύνολα κατηγορημάτων για το Ε, το ένα να αναφέρεται στην παράγωγο, και το άλλο στην αρχική μορφή της έκφρασης, με το δεύτερο να απαιτείται για τον πολλαπλασιασμό και την ύψωση σε δύναμη. Κάθε σύνολο θα πρέπει να περιλαμβάνει τουλάχιστον ένα ακέραιο κατηγόρημα για την τιμή του σταθερού συντελεστή της έκφρασης, καθώς και ένα κατηγόρημα πίνακα χαρακτήρων για την έκφραση. Άσκηση 7 (προαιρετική συμπληρωματική του ΣΑ της εργασίας): Έστω οι αριθμητικές εκφράσεις μεταξύ μη προσημασμένων ακεραίων σταθερών κάποιας γλώσσας προγραμματισμού που παράγονται από τη γραμματική: E E + E E - E E * E E / E E ** E ( E ) ICONST όπου ICONST η λεκτική μονάδα των σταθερών, οι +, -, * και / είναι τελεστές με τη συνήθη σημασιολογική ερμηνεία πράξης, προτεραιότητας και προσεταιριστικότητας, ενώ

5 5 ** είναι ο τελεστής ύψωσης σε δύναμη, έχει δε τη μέγιστη προτεραιότητα και δεξιά προσεταιριστικότητα. Αν οι σταθερές περιγράφονται ως ένας ή περισσότεροι αριθμητικοί χαρακτήρες, κατασκευάστε με τα μετα-εργαλεία flex και bison ένα πρόγραμμα, το οποίο να μετατρέπει τις παραπάνω εκφράσεις σε επιθεματική μορφή, χωρίς παρενθέσεις. Για παράδειγμα, η έκφραση: * (2 + 50) ** θα πρέπει να μετατρέπεται στην: ** * Να παραδώσετε ηλεκτρονικά τα αρχεία εισόδου των εργαλείων flex και bison που κατασκευάσατε. Άσκηση 8 (προαιρετική συμπληρωματική του ΣΑ της εργασίας): Η παρούσα άσκηση μελετάει τους ΣΑ αναδρομικής κατάβασης, τόσο ντετερμινιστικούς όσο και μη ντετερμινιστικούς. Οι ΣΑ αναδρομικής κατάβασης υλοποιούν μια συνάρτηση ανάλυσης για κάθε μη τερματικό σύμβολο της γραμματικής, η οποία, για κάθε δεξί μέλος κανόνα, καλεί συναρτήσεις για άλλα μη τερματικά σύμβολα και προχωράει την είσοδο για τερματικά σύμβολα. Κάθε συνάρτηση μπορεί να προχωράει με έναν από τους ακόλουθους τρόπους: 1. Ντετερμινιστικά: Συνήθως, τα περισσότερα μη τερματικά σύμβολα της γραμματικής έ- χουν εναλλακτικά δεξιά μέλη κανόνων, οπότε ο ΣΑ έχει επιλογές κίνησης στην ανάλυση αυτών των συμβόλων. Όμως, είναι δυνατό να μπορούμε να επιλέξουμε κανόνα, με επισκόπηση ενός αριθμού προπορευόμενων συμβόλων. Τότε, η ανάλυση είναι πλήρως ντετερμινιστική, ακριβώς όπως σε έναν ΣΑ LL(k). Στην ακραία περίπτωση χωρίς εναλλακτικά δεξιά μέλη κανόνων έχουμε έναν εκφυλισμένο ΣΑ, όπου η ανάλυση είναι επίσης πλήρως ντετερμινιστική αφού δεν υπάρχουν επιλογές κίνησης. 2. Μη ντετερμινιστικά: Στη γενική περίπτωση μη τερματικών συμβόλων με πολλαπλά ε- ναλλακτικά δεξιά μέλη κανόνων, μπορούμε να δοκιμάζουμε όλα τα δεξιά μέλη με τη σειρά, και κάθε φορά που μια συνάρτηση αποτυγχάνει, αντί να τερματίζει την ανάλυση, να επιστρέφει κατάλληλη ένδειξη, ώστε να οπισθοδρομούμε και να προχωράμε στο επόμενο δεξί μέλος. Έτσι, καταλήγουμε σε μία τελείως μη ντετερμινιστική ανάλυση, όπου δεν κάνουμε καμία επιλογή κίνησης, και απλά εξαντλούμε όλες τις εναλλακτικές κινήσεις. 3. Μερικώς ντετερμινιστικά: Για τις περιπτώσεις που μπορούμε να επιλέξουμε δεξί μέλος με βάση κάποια προπορευόμενα σύμβολα, είναι προτιμότερο να προχωράμε ντετερμινιστικά χωρίς οπισθοδρόμηση. Μόνο όταν δε μπορούμε να κάνουμε επιλογή, προχωράμε όπως στο μη ντετερμινιστικό ΣΑ. Μ άλλα λόγια, αν χρησιμοποιούμε k προπορευόμενα σύμβολα, προχωράμε με τον πρώτο τρόπο, όπου τα k σύμβολα μας παρέχουν επιλογή, και με το δεύτερο στις υπόλοιπες περιπτώσεις. Στη συνέχεια σας ζητείται να υλοποιήσετε και τους τρεις τρόπους ανάλυσης σε αντίστοιχα προγράμματα C, κατ αρχήν για μια διφορούμενη γραμματική, και στη συνέχεια σε δύο ισοδύναμές τις γραμματικές. Α. Να σχεδιάσετε και να υλοποιήσετε έναν ΣΑ αναδρομικής κατάβασης, συμπεριλαμβανομένου ενός πολύ απλού ΛΑ, για τη γραμματική με κανόνες: E Ε = Ε Ε + Ε Ε - E + Ε - Ε ( E ) V V i ( E ) i όπου i, =, +, -, ( και ) τα τερματικά σύμβολα της γραμματικής. Η γραμματική αυτή είναι διφορούμενη, οπότε ο ΣΑ θα είναι μη ντετερμινιστικός και θα πρέπει να οπισθοδρομεί, δοκιμάζοντας δηλαδή όλες τις εναλλακτικές επιλογές πριν συμπεράνει αποτυχία. Να ακολουθήσετε τον δεύτερο από τους πιο πάνω τρόπους ανάλυσης, χωρίς δηλαδή χρήση προπορευόμενων συμβόλων για επιλογή κίνησης. Στη συνέχεια, να εφαρμόσετε τον κώδικά σας στη συμβολοσειρά:

6 6 i=-i(i((i+-i(-i)))-i)=-(i(+i(i=(i=-i+(+i))-i))+i) και να δώσετε το δέντρο συντακτικής ανάλυσης που προκύπτει από τη σειρά με την οποία καλούνται οι συναρτήσεις του ΣΑ. Πόσες φορές καλούνται οι συναρτήσεις του ΣΑ; Β. Να εφαρμόσετε στην παραπάνω γραμματική απαλοιφή αριστερής αναδρομής και αριστερή παραγοντοποίηση. Δείξτε ότι ούτε η νέα γραμματική μπορεί να έχει ντετερμινιστικό ΣΑ αναδρομικής κατάβασης. Υλοποιήστε έτσι ένα δεύτερο μη ντετερμινιστικό ΣΑ αναδρομικής κατάβασης για τη νέα γραμματική, ο οποίος όμως να ακολουθεί τον τρίτο από τους πιο πάνω τρόπους ανάλυσης, προχωρώντας ντετερμινιστικά με χρήση ενός προπορευόμενου συμβόλου όπου δεν υπάρχει σύγκρουση στην ανάλυση, και μη ντετερμινιστικά στις υπόλοιπες περιπτώσεις, ώστε να οπισθοδρομεί όσο λιγότερες φορές γίνεται. Εφαρμόστε τον κώδικά σας στην παραπάνω συμβολοσειρά, και δώστε το νέο δέντρο συντακτικής ανάλυσης που προκύπτει. Πόσες φορές καλούνται οι συναρτήσεις του δεύτερου αυτού ΣΑ; Γ. Θεωρήστε τώρα την παρακάτω ισοδύναμη μη διφορούμενη γραμματική με κανόνες: E + Ε - E ( E ) E V E E = E + Ε - E V i V V ( E ) Όπως και στα προηγούμενα ερωτήματα, να υλοποιήσετε ένα ΣΑ αναδρομικής κατάβασης για τη νέα γραμματική, με τη διαφορά ότι ο τρίτος αυτός ΣΑ θα πρέπει να μην οπισθοδρομεί, επιλέγοντας κίνηση με βάση ένα προπορευόμενο σύμβολο. Εξηγήστε γιατί είναι δυνατή μια τέτοια υλοποίηση. Εφαρμόστε τον κώδικά σας στην πιο πάνω συμβολοσειρά, και δώστε το νέο δέντρο συντακτικής ανάλυσης που προκύπτει. Πόσες φορές καλούνται τώρα οι συναρτήσεις του ΣΑ; Οι τρεις αναλυτές που υλοποιήσατε θα πρέπει να παραδοθούν ηλεκτρονικά. ΠΡΟΣΟΧΗ: Όλες οι ασκήσεις εκτός του κώδικα των Ασκήσεων 7 και 8 να παραδοθούν χειρόγραφες. Κάθε άσκηση να παραδοθεί σε ξεχωριστές κόλλες από τις υπόλοιπες.

7 7 Μέρος Β. (ηλεκτρονική παράδοση στο τέλος του εξαμήνου) Να κατασκευάσετε το Σημασιολογικό Αναλυτή για τη γλώσσα της εργασίας σας, μέσα από το Συντακτικό Αναλυτή (ΣΑ) που θα πρέπει να έχετε ήδη κατασκευάσει. Ο συνολικός Συντακτικός και Σημασιολογικός Αναλυτής (ΣΣΑ) πρέπει να καλείται μια φορά για δοθέν πρόγραμμα, και παράλληλα με τη συντακτική ανάλυση, θα πρέπει: 1. Να αποτιμά τα κατηγορήματα των συμβόλων της γραμματικής. Με βάση την περιγραφή της γλώσσας, να ορίσετε ένα σύνολο κατηγορημάτων για κάθε σύμβολο, έτσι ώστε να συγκεντρώνετε όποια πληροφορία χρειάζεστε για τη συνέχεια της μετάφρασης. Σχεδιάστε έτσι τον αναλυτή σας, ώστε να μπορείτε να προσθέτετε κατηγορήματα όταν διαπιστώνετε ότι είναι απαραίτητα. Μπορείτε να χρησιμοποιείτε καθολικές μεταβλητές για αποθήκευση πληροφορίας, προσπαθήστε όμως να χρησιμοποιείτε κατηγορήματα όσο μπορείτε, επειδή αυτά εισάγονται στη στοίβα αποτίμησης του ΣΑ κι επομένως διατηρούν την τιμή τους σε περιπτώσεις πολλαπλών εμφανίσεων του ίδιου συμβόλου ή σε περιπτώσεις φωλιασμένων δομών της γλώσσας. 2. Να προσθέτει στον ΠΣ πληροφορίες για τα αναγνωριστικά που έχουν εισαχθεί από το ΛΑ ή το ΣΑ. Έτσι: (α) Να κωδικοποιούνται στον ΠΣ οι τύποι και τα συνώνυμα τύπων, όπου αυτά υπάρχουν. (β) Να προσδιορίζονται οι τύποι των μεταβλητών και των συναρτήσεων κατά τη δήλωσή τους. (γ) Να αποδίδονται τιμές σε ονόματα σταθερών ή πιθανές αρχικές τιμές σε ονόματα μεταβλητών. (δ) Να προσδιορίζονται ο αριθμός, οι τύποι, ο τρόπος περάσματος και τα ονόματα των παραμέτρων των υποπρογραμμάτων που δηλώνονται στο πρόγραμμα. 3. Αν υπάρχουν εντολές goto, να τις συνδέει με τις αντίστοιχες ετικέτες. Για το σκοπό αυτό οι ετικέτες μπορούν να εισάγονται στον ΠΣ και να αντιμετωπίζονται σαν τα υπόλοιπα αναγνωριστικά. 4. Να κατασκευάζει το Αφηρημένο Συντακτικό Δέντρο (ΑΣΔ) του προγράμματος. Κάθε κόμβος κατασκευάζεται από τον κώδικα ενέργειας που συνοδεύει την αναγνώριση κάποιου συντακτικού κανόνα της γραμματικής. Ειδικότερα: (α) Για τις εκφράσεις συνιστάται η χρήση τύπου δέντρου με μεταβλητό αριθμό παιδιών ανάλογα με τον τελεστή κάθε κόμβου, ενώ για τις εντολές αρκεί η χρήση γραμμικής λίστας με δυνατότητα φωλιάσματος για υποστήριξη σύνθετων και δομημένων εντολών. Για παράδειγμα, ο κόμβος μιας εντολής διακλάδωσης συνδέεται με τους κόμβους της προηγούμενης και της επόμενης εντολής, αλλά περιέχει και ένα ή δύο δείκτες σε κόμβους εντολών που αντιστοιχούν στις κατευθύνσεις της διακλάδωσης. Ας σημειωθεί ότι ο ίδιος κόμβος περιέχει και ένα δείκτη σε ρίζα δέντρου έκφρασης. Γενικά, οι περισσότεροι κόμβοι εντολών περιέχουν δείκτες σε κόμβους έκφρασης. (β) Η δομή των κόμβων του ΑΣΔ πρέπει να είναι τέτοια, ώστε να περικλείει όλη την πληροφορία που παράγεται από τη σημασιολογική ανάλυση των ίδιων και είναι απαραίτητη για τη σημασιολογική ανάλυση των γειτονικών κόμβων. Έτσι, ένας κόμβος έκφρασης πρέπει να αποθηκεύει πληροφορία για τον τύπο του, η οποία παράγεται από τη σημασιολογική ανάλυσή του και χρησιμοποιείται για τη σημασιολογική ανάλυση των γονέων του. (γ) Το δέντρο πρέπει να είναι όσο γίνεται πιο αφηρημένο, ώστε να είναι μικρό και να περιλαμβάνει μόνο τους αναγκαίους κόμβους για τη μετέπειτα ανάλυση του προγράμματος. Για παράδειγμα, κόμβοι για την αποθήκευση διαχωριστικών πχ παρενθέσεων είναι σκόπιμο να παραλείπονται, ενώ οι εκφράσεις είναι προτιμότερο να αποθηκεύονται έτσι, ώστε σε κάθε εσωτερικό κόμβο τους να αποθηκεύεται ο αντίστοιχος τελεστής, αντί κάποιου μη τερματικού συμβόλου της γραμματικής. Να έχετε υπ όψη ότι ο τύπος του κόμβου του ΑΣΔ θα παίξει σημαντικό ρόλο στη βελτιστοποίηση και την παραγωγή τελικού κώδικα, γι αυτό θα πρέπει να είναι εύκολος στο χειρισμό και να μπορεί να τροποποιείται εύκολα. Καλό θα είναι να διαχωρίσετε τον κώδικα C που διαχειρίζεται το ΑΣΔ σε κάποιο αρχείο έξω από το κυρίως αρχείο του ΣΣΑ.

8 8 5. Να δεσμεύει θέσεις στο χώρο δεδομένων (ΧΔ) για τις μεταβλητές του προγράμματος, δημιουργώντας πίνακες δέσμευσης για κάθε εμβέλεια που μεταφράζεται. Για τη γλώσσα της εργασίας σας καθορίστε τις κατηγορίες αποθήκευσης που υποστηρίζονται, το δέσιμο των μεταβλητών, το φώλιασμα των εμβελειών, και συμπληρώστε στον ΠΣ τα στοιχεία που θεωρείτε απαραίτητα για την παραγωγή τελικού κώδικα της επίλυσης αναφοράς κάθε μεταβλητής. 6. Να εκτελεί των έλεγχο των σημασιολογικών κανόνων της γλώσσας. Πιο συγκεκριμένα: (α) Να ελέγχει την ορθότητα όλων των δηλώσεων. Έτσι για παράδειγμα δεν πρέπει να υπάρχουν πολλαπλές δηλώσεις για το ίδιο αναγνωριστικό στην ίδια εμβέλεια. Ή ακόμα οι δηλώσεις συναρτήσεων πρέπει να ταιριάζουν με πιθανή προηγούμενη δήλωση των πρωτοτύπων τους, ο τύπος δήλωσης μιας σταθεράς πρέπει να ταιριάζει με την τιμή που της αποδίδεται, και ο τύπος μιας μεταβλητής πρέπει να ταιριάζει με την πιθανή αρχική της τιμή. (β) Να ελέγχει τη χρήση όλων των αναγνωριστικών σε σχέση με τη δήλωσή τους. Η χρήση αυτών πρέπει να γίνεται με τρόπο συμβατό με την αντίστοιχη δήλωση και στην εμβέλεια στην οποία έχουν δηλωθεί. (γ) Να ελέγχει τους τύπους των επιμέρους εκφράσεων σε μεγαλύτερες εκφράσεις. Αν αυτό κριθεί αναγκαίο, κόμβοι μετατροπής συμβατών τύπων πρέπει να εισάγονται στο ΑΣΔ. (δ) Να ελέγχει τη σημασιολογική ορθότητα των εντολών του προγράμματος. Για παράδειγμα, εδώ ελέγχονται οι τύποι στις αναθέσεις και προστίθενται τελικοί κόμβοι μετατροπής τύπων από το δεξί στο αριστερό μέλος μιας ανάθεσης, αν αυτό είναι απαραίτητο. Επίσης ελέγχονται οι κλήσεις υποπρογραμμάτων για την ορθότητα του αριθμού και του τύπου των παραμέτρων. Ή ακόμα ελέγχονται οι τύποι παραστάσεων που υπεισέρχονται σε συγκεκριμένες εντολές, όπως εντολές διακλαδώσεων και εντολές βρόχων. Τέλος, εδώ ελέγχονται τα άλματα πιθανών εντολών goto, και γενικά κάθε είδους εντολές ελέγχου ροής σε καθεμιά από τις τρεις γλώσσες της εργασίας σας. 7. Σε περίπτωση σφάλματος συντακτικής ανάλυσης να σταματά την παραγωγή κώδικα. Σε περίπτωση σημασιολογικού σφάλματος, ο ΣΣΑ να τερματίζει άμεσα τη λειτουργία του. 8. Για τους σκοπούς της παρούσας άσκησης να εκτυπώνει με κατάλληλο τρόπο το ΑΣΔ και το ΧΔ στο τέλος κάθε μονάδας του προγράμματος εισόδου. Η σημασιολογική ανάλυση γίνεται μέσα από τις ενέργειες του μετα-εργαλείου Bison. Ας σημειωθεί ότι επειδή το Bison υποστηρίζει ένα μόνο κατηγόρημα ανά σύμβολο της γραμματικής, η υλοποίηση πολλαπλών κατηγορημάτων θα πρέπει να γίνει με το δομημένο τύπο struct της C. Τις πιο πολλές φορές, ένα σύμβολο της γραμματικής αποδίδει έναν κόμβο του ΑΣΔ, οπότε τα κατηγορήματα του συμβόλου μπορούν να ενσωματωθούν στη δομή του αντίστοιχου κόμβου.

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

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

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

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

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

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

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 9 ο Γιώργος Δημητρίου Μάθημα 9 ο Ενδιάμεσος Κώδικας Απεικόνιση ανάμεσα στον αρχικό και στον τελικό κώδικα Γραμμικές αναπαραστάσεις: Ενδιάμεσος κώδικας πλησιέστερα στον τελικό ευκολότερη παραγωγή τελικού κώδικα

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Πρώτη Σειρά Ασκήσεων 27 Οκτωβρίου 2016 Μέρος Α. (χειρόγραφη και ηλεκτρονική παράδοση 11 Νοεμβρίου) Άσκηση 1: Θεωρήστε το ακόλουθο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Παραδείγματα Ενοτήτων 7-9 Ενότητα 7: Ενδιάμεσος κώδικας Άσκηση 7-1: Θεωρήστε τη γλώσσα προγραμματισμού C με τη γνωστή γραμματική

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Παραδείγματα Ενοτήτων 1-2 Ενότητα 1: Εισαγωγή Άσκηση 1-1: Θεωρήστε μια υποθετική γλώσσα προγραμματισμού και την παρακάτω γραμματική

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

Η γλώσσα προγραμματισμού Strange

Η γλώσσα προγραμματισμού Strange Προγραμματιστική άσκηση: Η γλώσσα προγραμματισμού Strange Η Strange είναι μια μικρή γλώσσα προγραμματισμού. Παρόλο που οι προγραμματιστικές της ικανότητες είναι μικρές, η εκπαιδευτική αυτή γλώσσα περιέχει

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

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή Αντίρριο, 05/04/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» To δεύτερο μέρος της εργασίας έχει ως στόχο την ανάπτυξη του συντακτικού αναλυτή με χρήση του bison / byacc. Στο

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Παραδείγματα Ενοτήτων 3-6 Ενότητα 3: Λεκτική ανάλυση Άσκηση 3-1: Να δώσετε το ενοποιημένο διάγραμμα μετάβασης που αναγνωρίζει

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

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

Πίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες Πίνακας Περιεχοµένων Πρόλογος...vii Κεφάλαιο 1:Βασικές εισαγωγικές έννοιες...1 1.1 Η δοµή του µεταγλωττιστή...2 1.2 Η διαδικασία µεταγλώττισης...3 1.2.1 Η Λεξική Ανάλυση...6 1.2.2 Η Συντακτική Ανάλυση...6

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

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

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

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

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

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

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

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

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

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η 53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η ΠΑΓΚΡΑΤΙ: Φιλολάου & Εκφαντίδου 26 : 210/76.01.470 210/76.00.179 ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

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

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 27 Μαρτίου 2013 Περίληψη Σκοπός της παρούσας εργασίας είναι η εξοικείωσή σας με τις θεμελιώδεις θεωρητικές και πρακτικές πτυχές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μεταγλωττιστές. Σημασιολογική Ανάλυση. Εργαστήριο 9. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι Μεταγλωττιστές Εργαστήριο 9 Σημασιολογική Ανάλυση Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2016-2017 Σύνταξη και Σημασιολογία Σε οποιαδήποτε γλώσσα (προγραμματισμού ή μη) υπάρχουν δύο βασικές

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

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

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

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

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

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

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

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

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

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

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

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60 Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

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

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

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

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

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Εισαγωγή Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Μεταγλωττιστής Αρχικό πρόγραμμα (source program) Μεταγλωττιστής Τελικό πρόγραμμα (object program) Διαγνωστικά μηνύματα Μεταγλωττιστής Παίρνει σαν

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις της C Τα Λοιπά Στοίβα και μηχανισμός κλήσης Αναδρομικές συναρτήσεις Στατικές μεταβλητές Άλλα θέματα Μηχανισμός

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις (Functions) Οι βασικές λειτουργικές ενότητες ενός προγράμματος C Καλούνται με ορίσματα που αντιστοιχούνται σε

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 6: Ασκήσεις Εξαμήνου Μέρος Β Νοέμβριος 2016 Στην άσκηση αυτή θα μελετήσουμε την εκτέλεση ενός

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

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

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

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

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

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

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

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program)

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program) Μεταφραστές Εισαγωγή (source program) Τελικό πρόγραµµα (object program) Γιώργος Μανής Γλώσσες Είδη Μεταγλωττιστών Αρχική γλώσσα Γλώσσα υλοποίησης Τελική γλώσσα Απλοί µεταγλωττιστές Αντίστροφοι µεταγλωττιστές

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

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1 Διασυνδεδεμένες Δομές Δυαδικά Δέντρα Προγραμματισμός II 1 lalis@inf.uth.gr Δέντρα Τα δέντρα είναι κλασικές αναδρομικές δομές Ένα δέντρο αποτελείται από υποδέντρα, καθένα από τα οποία μπορεί να θεωρηθεί

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

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

Σειρά Προβλημάτων 3 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 3 Λύσεις Να δώσετε ασυμφραστικές γραμματικές που να παράγουν τις πιο κάτω γλώσσες: (α) { a m b n c p m,n,p 0 και είτε m + n = p είτε m = n + p } (β) { xx rev yy rev x, y {a,b}

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ 2 ο ΣΕΤ ΑΣΚΗΣΕΩΝ Οι ασκήσεις αυτού του φυλλαδίου καλύπτουν τα παρακάτω θέματα: Συναρτήσεις (κεφάλαιο Functions)

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

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

Α2. Να γράψετε στο τετράδιο απαντήσεών σας το κατάλληλο τμήμα κώδικα, κάνοντας τις απαραίτητες αλλαγές σύμφωνα με την εκάστοτε εκφώνηση:

Α2. Να γράψετε στο τετράδιο απαντήσεών σας το κατάλληλο τμήμα κώδικα, κάνοντας τις απαραίτητες αλλαγές σύμφωνα με την εκάστοτε εκφώνηση: ΠΡΟΣΟΜΟΙΩΣΗ ΑΠΟΛΥΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) ΣΥΝΟΛΟ

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

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

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

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

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

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

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

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

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 3: Πίνακες, βρόχοι, συναρτήσεις 1 Ιουνίου 2017 Το σημερινό εργαστήριο

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

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

Κεφάλαιο 4: Συντακτική ανάλυση Κεφάλαιο 4: Συντακτική ανάλυση (μέρος 3ο) Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 211 / 216 Συντακτικοί αναλυτές SLR(1) συµβολοσειρά εισόδου a 1 a 2... a n EOF s m x m... κορυφή επόµενο

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

Η γλώσσα προγραμματισμού EEL

Η γλώσσα προγραμματισμού EEL Προγραμματιστική άσκηση: Η γλώσσα προγραμματισμού EEL Η EEL (Early Experimental Language) είναι μια μικρή γλώσσα προγραμματισμού. Παρόλο που οι προγραμματιστικές της ικανότητες είναι μικρές, η εκπαιδευτική

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ Θέμα Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2016-2017 Πάτρα 3/5/2017 Ονοματεπώνυμο:.. Α1. Να γράψετε στην κόλλα σας τον αριθμό

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου ΕΣΔ 516 Τεχνολογίες Διαδικτύου Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία [Lane 2004]: Chapter

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές Δρ. Γιώργος Λαμπρινίδης amprinidis@pharm.uoa.gr 1 Αριθμητικοί Τελεστές + πρόσθεση - αφαίρεση * πολλαπλασιασμός / διαίρεση Προσοχή! Διαίρεση

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

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

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

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

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ 1 Τύποι δεδομένων Η γλώσσα προγραμματισμού C++ υποστηρίζει τους παρακάτω τύπους δεδομένων: 1) Ακέραιοι αριθμοί (int). 2) Πραγματικοί αριθμοί διπλής ακρίβειας

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

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

Σειρά Προβλημάτων 3 Λύσεις Σειρά Προβλημάτων 3 Λύσεις Άσκηση 1 Να δώσετε ασυμφραστικές γραμματικές που να παράγουν τις πιο κάτω γλώσσες: (α) {0 n 1 n n > 0} {0 n 1 2n n > 0} (β) {w {a,b} * η w ξεκινά και τελειώνει με το ίδιο σύμβολο

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

Εισαγωγή στην γλώσσα προγραμματισμού C

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

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

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

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Τελικές εξετάσεις Πέμπτη 27 Ιουνίου 2013 10:003:00 Έστω το πάζλ των οκτώ πλακιδίων (8-puzzle)

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Εισαγωγή Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

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

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

Pascal. 15 Νοεμβρίου 2011

Pascal. 15 Νοεμβρίου 2011 Pascal 15 Νοεμβρίου 011 1 Procedures σε Pascal Στην Pascal μπορούμε να ορίσουμε διαδικασίες (procedures). Αυτές είναι ομάδες εντολών οι οποίες έχουν ένα όνομα. Γράφοντας το όνομα μιας διαδικασίας μπορούμε

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

Παρουσίαση του εργαλείου BISON

Παρουσίαση του εργαλείου BISON Παρουσίαση του εργαλείου BISON Γεννήτρια Συντακτικών Αναλυτών Β Φάση Συντακτική Ανάλυση Χαρακτηριστικά του bison Γεννήτρια συντακτικών αναλυτών σε C/C++. Συµβατό µε το εργαλείο του Unixyacc. Σχετικά εύκολο

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

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

Σειρά Προβλημάτων 3 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 3 Λύσεις Να δώσετε ασυμφραστικές γραμματικές που να παράγουν τις πιο κάτω γλώσσες: (α) { x x η τιμή της αριθμητικής έκφρασης 10 2n + 10 n + 1, n 1} (β) { a i b j c k d m i, j,

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

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ Ενότητα 2 : Ζωγραφίζοντας με το ΒΥΟΒ -1- Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα α. Θέση και προσανατολισμός της μορφής Η θέση της κάθε μορφής στο σκηνικό προσδιορίζεται

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

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w#z w, z {a,b}* και η z είναι υπολέξη της w}. Συγκεκριμένα,

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

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

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Ποιος πρέπει να ολοκληρώσει αυτή την εργασία? Φοιτητές έτους >=2 που

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

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

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

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

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Εργαστήριο Επεξεργασία Εικόνας & Βίντεο 1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή Νικόλαος Γιαννακέας Άρτα 2018 1 Εισαγωγή Το Matlab

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α : Α1. Να

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

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

Τεχνητή Νοημοσύνη. 21η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 21η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: «Artificial Intelligence A Modern Approach» των. Russel

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #2 2 Γενικά Στο Εργαστήριο αυτό θα αναλύσουμε τη χρήση της βασικής εντολής ελέγχου ροής

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

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων 1 Είσοδος/Έξοδος Είσοδος/Έξοδος ανάλογα με τον τύπο του προγράμματος Πρόγραμμα

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Τρίτη Σειρά Ασκήσεων 27 Δεκεμβρίου 2016 Μέρος Α. (παράδοση: τέλος εξεταστικής Ιανουαρίου ή Σεπτεμβρίου) Άσκηση 1: Έστω ένα απόσπασμα γραμματικής σε συμβολισμό

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) ΚΑΤΑΛΟΓΟΣ ΕΡΩΤΗΣΕΩΝ ΕΡΩΤΗΣΕΙΣ ΕΙ ΙΚΩΝ ΓΝΩΣΕΩΝ (γλώσσα προγραµµατισµού

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

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

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

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

Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95

Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95 Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95 Σταμάτης Σταματιάδης Τμήμα Επιστήμης και Τεχνολογίας Υλικών, Πανεπιστήμιο Κρήτης Διεξαγωγή μαθήματος Διαλέξεις Πέμπτη 14:00-16:00 στο αμφιθέατρο A του Τμήματος

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