Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών (Κοζάνη) Χειμ. Εξ '15

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

Download "Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών (Κοζάνη) Χειμ. Εξ '15"

Transcript

1 ΠΡΟΑΙΡΕΤΙΚΗ ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ «ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ» 1 Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών (Κοζάνη) Χειμ. Εξ '15 ΠΡΟΑΙΡΕΤΙΚΗ ΕΡΓΑΣΙΑ ΣΤΟΥΣ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ Η προαιρετική εργασία «ΓΛΩΣΣΑ ΓΙΑ ΜΗΧΑΝΗ ΣΤΟΙΒΑΣ» μπορεί να δουλευτεί σε ατομική βάση ή σε ομάδες των δύο ατόμων και το όφελος που θα έχουν οι φοιτητές ανάλογα με την περίπτωση είναι: απαλλαγή από την εξέταση όπου οι φοιτητές θα προσέλθουν μόνο για να παραδώσουν την εργασία με βαθμό ΑΡΙΣΤΑ (10) για τις ολοκληρωμένες εργασίες, δυνατότητα να παραδοθεί μέρος μόνο της εργασίας που αν αυτό περιλαμβάνει μόνο τη Λεξική Ανάλυση θα αποδίδει μέχρι και 25% στο βαθμό, που θα γράψετε στις εξετάσεις, ενώ αν το παραδοτέο περιλαμβάνει τη Λεξική και τη Συντακτική Ανάλυση θα αποδίδει μέχρι και 50% στο βαθμό, που θα γράψετε στις εξετάσεις. Για να βαθμολογηθεί η εργασία, υποχρεούστε να παραδώσετε, μέχρι την ημερομηνία εξέτασης του μαθήματος ή μέχρι την ημερομηνία εξέτασης στην εξεταστική Σεπτεμβρίου. Το παραδοτέο για να είναι έγκυρο πρέπει να περιλαμβάνει: δίσκο (CD) o με τον κώδικα της «Γλώσσας για Μηχανή Στοίβας» σε πηγαία και εκτελέσιμη μορφή o αρχεία κειμένου ASCII με παραδείγματα έτοιμα για εκτέλεση αναφορά, που θα περιλαμβάνει o στην πρώτη σελίδα, πίνακα με τα χαρακτηριστικά, που υλοποιήσατε, στη μορφή ΑΤΟΜΙΚΗ Ή ΟΜΑΔΙΚΗ ΛΕΞΙΚΗ ΑΝΑΛΥΣΗ ΣΥΝΤΑΚΤΙΚΗ ΑΝΑΛΥΣΗ ΔΗΜΙΟΥΡΓΙΑ ΚΩΔΙΚΑ ΓΙΑ ΜΙΑ ΙΔΕΑΤΗ ΜΗΧΑΝΗ ΣΤΟΙΒΑΣ που θα διευκολύνει τη βαθμολόγηση της εργασίας σας. o συνοπτική περιγραφή της δομής της «Γλώσσας για Μηχανή Στοίβας», που θα ολοκληρώνεται με παραδείγματα και τα αποτελέσματα, που αποδίδει η εκτέλεσή τους. να γίνει επίδειξη του προγράμματος στο γραφείο του διδάσκοντος Αν ο διδάσκων κρίνει ότι το πρόγραμμα, που παραδίδετε, είναι προϊόν αντιγραφής, τότε αυτό δε λαμβάνεται υπόψη στον τελικό βαθμό. Η «Γλώσσα για Μηχανή Στοίβας» μπορεί να υλοποιηθεί, είτε σε C, είτε σε C++. Απαραίτητα βοηθήματα είναι οι σημειώσεις διαφάνειες και οι οδηγίες χρήσης των flex και byacc, που μπορεί κανείς να βρει στη διεύθυνση lex_yacc_page/.

2 ΠΡΟΑΙΡΕΤΙΚΗ ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ «ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ» 2 ΛΕΞΙΚΗ ΑΝΑΛΥΣΗ Συντάξτε μία δήλωση αναγνωριστικών (tokens) για τη λεξική ανάλυση γλώσσας που θα περιλαμβάνει: σύμβολα (symbols) : + * - = ( ), λέξεις κλειδιά (keywords) : let in and ονόματα (identifiers) : αρχίζουν από χαρακτήρα που ακολουθείται από άλλους χαρακτήρες ή ψηφία με μέγιστο μήκος οκτώ (8). Ονόματα με μεγαλύτερο μήκος πρέπει να αποκόπτονται και να παράγεται ένα προειδοποιητικό μήνυμα. αριθμούς (numbers) : μη προσημασμένοι ακέραιοι (unsigned integers) Αν ένας αριθμός είναι πολύ μεγάλος για να ταιριάζει σε ακέραιο τότε πρέπει να παράγεται ένα προειδοποιητικό μήνυμα και συνάρτηση λεξικής ανάλυσης να επιστρέφει την τιμή 0. Θα πρέπει επίσης να συμπεριλάβετε ως αναγνωριστικά τα end-of-file και error. Το κενό διάστημα (space) και ο χαρακτήρας νέας γραμμής παίζουν το ρόλο διαχωριστών και δεν λαμβάνονται υπόψη ως διαχωριστές. Για να δοκιμάσετε τη λεξική ανάλυση να αναπαραστήσετε τα ονόματα ως δείκτες σε συμβολοσειρές (μην προχωρήσετε στην δημιουργία πίνακα συμβόλων σε αυτή τη φάση). Γράψτε μία συνάρτηση main() που απλά θα τυπώνει τα αναγνωριστικά που διαβάζει στο πηγαίο πρόγραμμα. ΠΑΡΑΔΕΙΓΜΑ Θεωρήστε το πηγαίο πρόγραμμα let inx = +(3, 4) and q3 = *(2, -5) in * (inx, q3) Θα πρέπει να παραχθεί η ακόλουθη σειρά αναγνωριστικών: <LET,> <ID, inx> <EQ,> <PLUS,> <LP> <NUM, 3> <COMMA,> <NUM, 4> <RP,> <AND,> <ID, q3> <EQ,> <TIMES,> <LP,> <NUM,2> <COMMA,> <MINUS,> <NUM,5> <RP> <IN,> <TIMES,> <LP,> <ID,inx> <COMMA,> <ID,q3> <RP> <EOF>

3 ΠΡΟΑΙΡΕΤΙΚΗ ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ «ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ» 3 ΣΥΝΤΑΚΤΙΚΗ ΑΝΑΛΥΣΗ Εφόσον έχετε ολοκληρώσει τη λεξική ανάλυση μπορείτε να προχωρήσετε στη συγγραφή της συντακτικής ανάλυσης. Η γλώσσα μας αποτελείται από εκφράσεις τύπου let όπως στο παράδειγμα let x = 3 and y = +(x,2) in *(x, -y) let x = let y = 4 in +(y,y) in *(x,x) Η σύνταξη της γλώσσας περιγράφεται από τη γραμματική program expr eof expr let deflist in expr identifier number plus lp expr comma expr rp times lp expr comma expr rp minus identfier minus number deflist definition definition and deflist definition identifier equals expr Η συντακτική ανάλυση θα κατασκευάζει ένα παράγωγο δέντρο με βάση το πηγαίο πρόγραμμα που δέχεται ως είσοδο. Το δέντρο υλοποιείται ως Αφαιρετικός Τύπος Δεδομένων (Abstract Data Type) με βάση το αρχείο κώδικα tree.h που επισυνάπτεται. Τα δέντρα μπορεί να αναπαριστούν εκφράσεις (expressions), ορισμούς (definitions) ή λίστες ορισμών (definition lists). Το δέντρο για ένα πρόγραμμα είναι απλά το δέντρο που αντιστοιχεί στη έκφραση που αυτό περιλαμβάνει. Τα δέντρα για ονόματα (identifiers) και αριθμούς (leaves) χρησιμοποιούνται ως φύλλα που είτε διαθέτουν δείκτη στην αρχή μιας συμβολοσειράς είτε έναν ακέραιο, ανάλογα με την περίπτωση. Τα δέντρα για εκφράσεις αθροίσματος (plus) και γινομένου (times) διαθέτουν δύο απογόνους που αντιστοιχούν στις υποεκφράσεις της πράξης. Τα δέντρα για αρνητικές εκφράσεις (minus) έχουν μόνο έναν απόγονο, που αντιστοιχεί σε δέντρο έκφρασης που περιλαμβάνει είτε ένα όνομα (identifier) είτε έναν αριθμό (number). Τα δέντρα για εκφράσεις let έχουν δύο απογόνους: ο αριστερός απόγονος αντιστοιχεί σε μία λίστα ορισμών (definition list) και ο δεξιός απόγονος σε μία έκφραση (expression). Τα δέντρα για την αναπαράσταση ορισμών ( eq trees ) διαθέτουν ένα δείκτη προς την αρχή μιας συμβολοσειράς και έναν απόγονο που αντιστοιχεί σε έκφραση (expression). Τα δέντρα για λίστες ορισμών (definition lists) είτε είναι δέντρα eq trees είτε είναι κόμβοι που έχουν ως αριστερό απόγονο ένα eq tree και ως δεξί απόγονο ένα δέντρο λίστας ορισμών (definition list). Στο αρχείο κώδικα tree.h που επισυνάπτεται δίνονται οι δηλώσεις συναρτήσεων για την κατασκευή των προαναφερόμενων περιπτώσεων δέντρου καθώς και γι τη διάσχιση δέντρων. Σημειώνουμε ότι πρέπει να χρησιμοποιείτε τη συνάρτηση only _child όταν προσπαθείτε να προσπελάσετε τον απόγονο μέσα σε ένα δέντρο αρνητικής έκφρασης ή ένα eq tree.

4 ΠΡΟΑΙΡΕΤΙΚΗ ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ «ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ» 4 Σημειώνεται ότι οι συναρτήσεις που δέχονται δείκτες προς την αρχή συμβολοσειρών ως παραμέτρους δεν αντιγράφουν τις συμβολοσειρές και γι αυτό το λόγο πρέπει να σιγουρευτείτε ότι στις συμβολοσειρές που περνάτε ως παραμέτρους έχει εκχωρηθεί μνήμη με malloc έτσι ώστε να μην αντιγράφονται οι τιμές τους. Κατά συνέπεια στη λεξική ανάλυση όταν δεν τροποποιείται μία συμβολοσειρά θα πρέπει να γίνεται χρήση της malloc. Η συντακτική ανάλυση μπορεί να γίνει είτε με την τεχνική προβλέπουσας αναδρομικής κατάβασης (recursive descent) είτε με τη χρήση του εργαλεία byacc. Όταν εντοπίζεται συντακτικό λάθος θα πρέπει να παράγεται ένα χρήσιμο μήνυμα του τύπου ( missing right parenthesis, expression cannot start with and, unrecognized token ) και η ανάλυση θα τερματίζει (ονόματα που δεν έχουν δηλωθεί δεν θεωρούνται συντακτικά λάθη). Αν η είσοδος αποτελείται από μία σωστή έκφραση που ακολουθείται από κάτι άλλο εκτός από end-of-file τότε πρέπει να επιστρέφεται το παράγωγο δέντρο της έκφρασης και να ένα κατάλληλο μήνυμα. Το αρχείο interpret.c που επισυνάπτεται σας επιτρέπει να ελέγξετε αν το παράγωγο δέντρο που κατασκευάζει ο αναλυτής σας είναι σωστό.

5 ΠΡΟΑΙΡΕΤΙΚΗ ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ «ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ» 5 ΔΗΜΙΟΥΡΓΙΑ ΚΩΔΙΚΑ ΓΙΑ ΜΙΑ ΙΔΕΑΤΗ ΜΗΧΑΝΗ ΣΤΟΙΒΑΣ Η ιδεατή μηχανή στόχος για τον μεταγλωττιστή σας είναι μία μηχανή στοίβας για λέξεις 32 bit με τέσσερις (4) καταχωρητές με τα εξής ονόματα: top (ο δείκτης της στοίβας), base, frame και temp. Τα περιεχόμενα της στοίβας αρχίζουν από τη διεύθυνση 0 και εκτείνονται με κατεύθυνση προς τις υψηλότερες διευθύνσεις. Ο καταχωρητής top δείχνει πάντα τη διεύθυνση ακριβώς πάνω από την κορυφή της στοίβας. Αρχικά τόσο στον top όσο και στον base εκχωρείται η διεύθυνση της βάσης της στοίβας. Υπάρχουν 14 εντολές από τις οποίες οι δύο δέχονται μία ακέραια παράμετρο ενώ οι υπόλοιπες δεν δέχονται καθόλου παραμέτρους. Για εκφράσεις χωρίς ονόματα χρειάζονται μόνο 4 εντολές. Αυτές είναι οι: 1 arg Εισαγωγή του arg στη στοίβα 2 Εξαγωγή δύο τιμών από τη στοίβα και εισαγωγή του αθροίσματος 3 Εξαγωγή δύο τιμών από τη στοίβα και εισαγωγή του γινομένου 4 Εξαγωγή μιας τιμής από τη στοίβα και εισαγωγή της αντίστοιχης αρνητικής τιμής Παραδείγματα: Ο κώδικας για την έκφραση +(3,-4) θα ήταν 1 3 εισαγωγή στη στοίβα του η στοίβα περιέχει τα 3 και 4 4 η στοίβα περιέχει τα 3 και -4 2 η στοίβα περιέχει το +(3,-4) Το αποτέλεσμα είναι πάντα προσβάσιμο στη διεύθυνση που υποδεικνύει ο καταχωρητής top. Ο κώδικας για την έκφραση *(*(2,3),+(-4,5)) θα ήταν 1 2 εισαγωγή στη στοίβα του η στοίβα περιέχει τα 2 και 3 3 η στοίβα περιέχει το *(2,3) 1 4 η στοίβα περιέχει τα *(2,3), 4 4 η στοίβα περιέχει τα *(2,3), η στοίβα περιέχει τα *(2,3), -4, 5 2 η στοίβα περιέχει τα *(2,3), +(-4, 5) 3 η στοίβα περιέχει το *(*(2,3), +(-4, 5)) Οι τιμές των ονομάτων περνάνε μέσα στη στοίβα με ένα stackframe για κάθε εντολή let. Ο καταχωρητής base θα δείχνει πάντα το τρέχον stack frame: τα περιεχόμενα της διεύθυνσης top θα δείχνει το επόμενο stack frame και οι μεταβλητές στο τρέχον frame θα βρίσκονται στις θέσεις που ακολουθούν μετά τη διεύθυνση που υποδεικνύει ο base. Όταν μπαίνουμε σε ένα νέο let είναι απαραίτητο να ανοίξουμε καινούριο frame στην κορυφή της στοίβας και να ενημερώσουμε τον καταχωρητή base. Όταν εγκαταλείπουμε ένα let οι καταχωρητές base και top πρέπει να επανέλθουν στις προγενέστερες τιμές. Έτσι, όταν εκτελούνται οι εντολές

6 ΠΡΟΑΙΡΕΤΙΚΗ ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ «ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ» 6 let x=3 and y=4 in +(*(x,3), let z=+(y,2) in *(z,3)) και μόλις πριν η εκτέλεση εισέλθει στο εσωτερικό let μετά την αποτίμηση των x και y η στοίβα θα έχει την παρακάτω εικόνα: top δείχνει εδώ *(x,3) ήδη υπολογίστηκε... 9 y... 4 x... 3 base δείχνει εδώ ΠΥΘΜΕΝΑΣ ΣΤΟΙΒΑΣ Για τη δημιουργία νέου stack frame είναι απαραίτητο να αντιγραφεί το περιεχόμενο του base στη διεύθυνση που υποδεικνύεται από τον top να ενημερωθεί η τιμή του base με τη νέα θέση και να αυξηθεί η τιμή του top κατά μία θέση. Η στοίβα θα πάρει την εξής μορφή: top δείχνει εδώ base δείχνει εδώ *(x,3) ήδη υπολογίστηκε... 9 y... 4 x δείκτης από τον base στην παλιά τιμή του base ΠΥΘΜΕΝΑΣ ΣΤΟΙΒΑΣ Όταν υπολογίζεται η έκφραση του εσωτερικού let τότε ο base παραμένει σταθερός ενώ μετακινείται ο top. Για να προσπελαστεί η μεταβλητή y που ανήκει στο εξωτερικό let πρέπει να γίνει προσπέλαση στον base που περιέχει δείκτη προς την προγενέστερη τιμή του base και εφόσον είναι γνωστό ότι το y είναι το δεύτερο όνομα μέσα στο let το ζητούμενο θα βρεθεί με προσπέλαση σε διεύθυνση δύο θέσεις πάνω από την παλιά διεύθυνση της base. Για να διαχειριστούμε τους δείκτες σε αυτή την περίπτωση χρησιμοποιείται ο καταχωρητής frame. Όταν θα έχει υπολογιστεί η έκφραση του εσωτερικού let στο παράδειγμα η κατάσταση της στοίβας θα είναι όπως στο σχήμα που ακολουθεί: top δείχνει εδώ αποτέλεσμα έκφρασης let z... 6 base δείχνει εδώ *(x,3) ήδη υπολογίστηκε... 9 y... 4 x δείκτης από τον base στην παλιά τιμή του base ΠΥΘΜΕΝΑΣ ΣΤΟΙΒΑΣ Για να προχωρήσουμε στη συνέχεια με την έκφραση του εξωτερικού let είναι απαραίτητο να έρθει η στοίβα στην εξής κατάσταση:

7 ΠΡΟΑΙΡΕΤΙΚΗ ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ «ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ» 7 top δείχνει εδώ αποτέλεσμα έκφρασης let *(x,3) already evaluated... 9 y... 4 x... 3 base δείχνει εδώ ΠΥΘΜΕΝΑΣ ΣΤΟΙΒΑΣ Για να γίνει αυτό, το αποτέλεσμα της έκφρασης let εξάγεται από την top και τοποθετείται στον temp, η διεύθυνση του base αντιγράφεται στον top και ο δείκτης προς την παλιά διεύθυνση του base (δηλ. το περιεχόμενο της διεύθυνσης που τώρα δείχνει ο top) αντιγράφεται στον base. Τέλος, το περιεχόμενο που προσωρινά αποθηκεύθηκε στον temp εισάγεται στην στοίβα και ενημερώνεται ο top. Για τη δημιουργία και την καταστροφή stackframes χρησιμοποιούμε τις ακόλουθες εντολές: 5 Αυξάνεται το περιεχόμενο του top κατά 1 6 Αντιγράφεται το περιεχόμενο του top στον base 7 Αντιγράφεται το περιεχόμενο του top στον top 8 Αντιγράφεται το περιεχόμενο του top στη διεύθυνση που δείχνει ο top 9 Αντιγράφεται το περιεχόμενο της διεύθυνσης που υπάρχει στον top στον base 10 Εξάγεται ένα στοιχείο της στοίβας στον temp 11 Εισάγεται το περιεχόμενο της temp στη στοίβα Οι υπόλοιπες εντολές απαιτούνται για την προσπέλαση στα περιεχόμενα των μεταβλητών μέσα στη στοίβα. Πρέπει να είμαστε σε θέση να αντιγράφουμε τον base στον frame, να ακολουθούμε αλυσιδωτές αναφορές προγενέστερων τιμών του base και να εισάγουμε στη στοίβα ένα αντίγραφο του περιεχομένου της διεύθυνση που προσδιορίζεται σε καθορισμένη απόσταση πάνω από μία καταχώρηση κάποιου base: 12 Αντιγράφεται το περιεχόμενο του base στον frame 13 Αντιγράφεται το περιεχόμενο της διεύθυνσης που αναφέρεται στον frame στον καταχωρητή frame 14 arg Επιστρέφεται η διεύθυνση που προκύπτει ως άθροισμα του arg και του περιεχομένου του frame. Εισάγεται το περιεχόμενο αυτής της διεύθυνσης στη στοίβα. Το πρόγραμμα δημιουργίας κώδικα θα διασχίζει το παράγωγο δέντρο του πηγαίου προγράμματος με αναδρομικές κλήσεις για τους απογόνους κάθε κόμβου και την εκτέλεση μιας εντολής switch case που κατά περίπτωση θα λειτουργεί ως εξής: Κόμβος Number Κόμβος Identifier δημιουργείται εντολή που θα εισάγει τον αριθμό στη στοίβα δημιουργείται μία σειρά εντολών που θα εισάγει ένα αντίγραφο της τιμής του ονόματος (που βρίσκεται κάπου μέσα στη στοίβα) στη στοίβα

8 ΠΡΟΑΙΡΕΤΙΚΗ ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ «ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ» 8 Κόμβος Plus δημιουργείται κώδικας για τον αριστερό απόγονο, στη συνέχεια δημιουργείται κώδικας για τον δεξί απόγονο, στη συνέχεια δημιουργείται εντολή άθροισης (δε χρειάζεται να γίνει έλεγχος για overflow) Κόμβος Times /Κόμβος minus κλπ. Κόμβος Let δημιουργείται η σειρά εντολών προλόγου, δημιουργείται κώδικας για τον αριστερό απόγονο, δημιουργείται κώδικας για τον δεξί απόγονο, δημιουργείται η σειρά εντολών επίλογου (Η σειρά εντολών προλόγου αποτελείται από τις εντολές που απαιτούνται για το άνοιγμα ενός stackframe. Η σειρά εντολών επιλόγου αποτελείται από τις εντολές που απαιτούνται για την καταστροφή ενός stackframe και την μετακίνηση του αποτελέσματος σύμφωνα με τις ενέργειες που περιγράφηκαν στις προηγούμενες παραγράφους). Κόμβος And δημιουργείται κώδικας για τον αριστερό απόγονο, στη συνέχεια δημιουργείται κώδικας για τον δεξί απόγονο Κόμβος eq δημιουργείται κώδικας για τον μοναδικό απόγονο του κόμβου Το πιο δύσκολο από τα προβλήματα που θα αντιμετωπίσετε είναι η σειρά των εντολών που απαιτούνται για την εύρεση της τιμής ενός συγκεκριμένου ονόματος. Για να γίνει αυτό θα πρέπει να βρεθεί η θέση του ονόματος σε σχέση με τη θέση base του let στο οποίο ορίζεται το όνομα και να υπολογιστεί η απόσταση μέσα στη στοίβα της τιμής του ονόματος από τη συγκεκριμένη θέση base. Η διεύθυνση του base, που δεν θα ταυτίζεται με την τρέχουσα διεύθυνση στην οποία δείχνει ο καταχωρητής base αν το όνομα ορίζεται σε εντολή let διαφορετική από αυτήν που αναλύεται, θα πρέπει να αποθηκευτεί στον καταχωρητή frame. Η απόσταση της τιμής του ονόματος από τον καταχωρητή frame εξαρτάται από το πόσοι ορισμοί ονομάτων έχουν προηγηθεί μέσα στο let, δηλ. το πρώτο όνομα θα βρίσκεται μία λέξη πάνω από τη διεύθυνση του frame, το δεύτερο όνομα δύο λέξεις πάνω κ.ο.κ. Έτσι, αν θεωρήσουμε το παράδειγμα let q=+(7,4) and y=let p=3 and x=+(p,4) in *(x,q) in +(q,y) όταν δημιουργείται κώδικας για τον υπολογισμό του *(x,q) το x είναι το δεύτερο όνομα που ορίζεται στον τρέχον let και άρα για να εισαχθεί η τιμή του στη στοίβα πρέπει να εκτελεστούν οι παρακάτω εντολές: Παρόλα αυτά η τιμή του q όταν υπολογίζεται το *(x,q) σίγουρα δεν βρίσκεται στο τρέχον stackframe αφού αυτό είχε υπολογιστεί πριν από την είσοδο στο ενεργό let. Η θέση του βρίσκεται μία λέξη πάνω από τη θέση base του προηγούμενου stackframe. Εκμεταλλευόμαστε την ύπαρξη δείκτη από την τρέχουσα θέση στη οποία δείχνει ο καταχωρητής base στην προηγούμενη θέση base και έτσι μετά από την αντιγραφή της τρέχουσας θέσης base στον καταχωρητή frame ακολουθούμε αυτόν τον δείκτη. Αυτό γίνεται με την εντολή 13 και έτσι η σειρά εντολών παίρνει την παρακάτω μορφή: 12 13

9 ΠΡΟΑΙΡΕΤΙΚΗ ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ «ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ» Άρα, για τη δημιουργία κώδικα για ένα όνομα χρειάζονται οι εξής πληροφορίες: (α) ο αριθμός των εμφωλευμένων εντολών let μεταξύ του ορισμού του ονόματος και της τρέχουσας θέσης, που τελικά προσδιορίζει το πόσες φορές χρειάζεται η εντολή 13 και (β) η θέση του ονόματος μέσα στη let που ορίζεται που προσδιορίζει την παράμετρο της εντολής 14. Στη συνέχεια προτείνονται δύο προσεγγίσεις που μπορείτε να ακολουθήσετε για να παράγετε την προαναφερόμενη πληροφορία, αλλά αν εσείς θεωρείτε κάποια άλλη υλοποίηση πιο προσιτή μπορείτε να την εφαρμόσετε. Η πρώτη προσέγγιση αποσκοπεί στην καταμέτρηση των εμφωλευμένων let που ανιχνεύονται κατά τη διάσχιση του παράγωγου δέντρου για τη δημιουργία κώδικα (δηλ. αυξάνεται κατά ένα ένας μετρητής που χρησιμοποιείται γι αυτό το σκοπό πριν από τη δημιουργία κώδικα για τον αριστερό απόγονο ενός κόμβου let και μειώνεται κατά ένα κάθε φορά που ολοκληρώνεται η δημιουργία κώδικα για ένα δεξί απόγονο κόμβου let) και στην καταμέτρηση των ονομάτων που ορίζονται μέσα στο τρέχον let. Μετά από τη δημιουργία κώδικα για τον απόγονο ενός κόμβου eq το όνομα μαζί με τους δύο προαναφερόμενους μετρητές καταχωρείται σε μία λίστα. Έτσι, για το παραπάνω παράδειγμα ενώ θα δημιουργείται κώδικας για το *(x,q) το περιεχόμενο της λίστας θα είναι το <x,2,2> <p,2,1> <q,1,1> Για να δημιουργήσουμε κώδικα που θα αντιγράφει την τιμή του q στην κορυφή της στοίβας πρέπει πρώτα να βρούμε το q μέσα στη λίστα, να αφαιρέσουμε το επίπεδο let στο οποίο αυτό ορίζεται (και είναι το 1) από το τρέχον επίπεδο let (που είναι το 2) για να προσδιορίσουμε το πόσες εντολές 13 απαιτούνται και να χρησιμοποιήσουμε την τιμή του μετρητή των ονομάτων που είναι καταχωρημένη ως παράμετρο της εντολής 14. Μετά τη μείωση του μετρητή των let είναι απαραίτητο να απομακρύνονται τα ονόματα με παλιά μέτρηση let από τη λίστα αφού πλέον αυτά είναι εκτός εμβέλειας. Αυτό σημαίνει ότι όταν θα υπολογίζεται το +(q,y) το περιεχόμενο της λίστας θα είναι <y,1,2> <q,1,1> Σημειώστε ότι όταν εισέρχεστε σε ένα εμφωλευμένο let ο μετρητής ονομάτων για το εξωτερικό let κρατάει την τιμή του. Σύμφωνα με τη δεύτερη προσέγγιση συντηρείται μία λίστα από λίστες με ονόματα. Η πρώτη στη σειρά λίστα περιέχει ονόματα που ορίζονται στην τρέχουσα εμβέλεια, η επόμενη λίστα τα ονόματα ενός επιπέδου εμβέλειας προς τα έξω κ.ο.κ. Ενώ λοιπόν δημιουργείται κώδικας για το *(x,q) η λίστα από λίστες έχει την παρακάτω μορφή * -- p x * -- q Όταν χρειάζεται να παραχθεί κώδικας προσπέλασης σε ένα όνομα πρέπει να γίνει αναζήτηση του ονόματος πρώτα στην πρώτη λίστα, μετά στην επόμενη κ.ο.κ. Έχοντας ένα μετρητή που θα καταμετρά τις λίστες στις οποίες χρειάστηκε να γίνει αναζήτηση καθορίζεται ο αριθμός των εντολών 13 που απαιτούνται και καταμετρώντας τον αριθμό των στοιχείων μέσα σε κάθε λίστα καθορίζεται και η παράμετρος της εντολής 14. Έτσι για παράδειγμα το x είναι το δεύτερο στοιχείο της πρώτης λίστας και άρα αντιστοιχεί στο δεύτερο όνομα της τρέχουσας εντολής let, ενώ το y είναι το πρώτο στοιχείο της δεύτερης λίστας και άρα το πρώτο όνομα που

10 ΠΡΟΑΙΡΕΤΙΚΗ ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ «ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ» 10 εμφανίζεται στην προηγούμενη εντολή let. Είναι σημαντικό να καταστρέφεται πάντα η πρώτη από τη λίστα με τις λίστες μετά τη δημιουργία κώδικα για τον δεξί απόγονο ενός κόμβου let. Είτε με την πρώτη είτε με τη δεύτερη προσέγγιση αν ένα όνομα δεν εντοπιστεί να παράγεται κατάλληλο μήνυμα «undeclared identifier» στην τυπική έξοδο (όχι στον κώδικα στόχο). Η διαχείριση της κατάστασης στην περίπτωση αυτή (τερματισμός προγράμματος ή απομάκρυνση κώδικα που ήδη δημιουργήθηκε ή ανάθεση προκαθορισμένης τιμής 0 στο όνομα) αφήνεται στην κρίση σας αρκεί στην αναφορά να υπάρχει σχόλιο για την επιλογή που κάνατε. Γράψτε μία συνάρτηση δημιουργίας κώδικα που δέχεται δύο παραμέτρους, ένα αρχείο και ένα δέντρο και παράγει κώδικα για το δέντρο μέσα στο αρχείο. Οι εντολές πρέπει να εκτυπώνονται ως αριθμοί και πιο συγκεκριμένα μία εντολή ανά γραμμή. Τώρα η συνάρτηση main θα καλεί τη συνάρτηση ανάλυσης για να κατασκευάσει το παράγωγο δέντρο από την έκφραση που θα διοχετευθεί στην τυπική είσοδο και μετά θα ανοίξει ένα αρχείο για εγγραφή με όνομα που θα περαστεί ως παράμετρος κατά την εκτέλεση του προγράμματος. Αν δεν δοθεί όνομα αρχείου λη το άνοιγμα του αρχείου που ζητήθηκε δεν ήταν επιτυχές, τότε θα πρέπει να παράγεται ένα μήνυμα λάθους και το πρόγραμμα να τερματίζει. Σε κάθε άλλη περίπτωση θα καλείται η συνάρτηση δημιουργία κώδικα περνώντας ως παραμέτρους το αρχείο και το δέντρο. Η συνάρτηση main πρέπει να κλείνει το αρχείο πριν από τον τερματισμό. Στα αρχεία που επισυνάπτονται περιλαμβάνεται πρόγραμμα που δέχεται ως είσοδο αρχείο όπως αυτά που θα παράγονται κατά τη δημιουργία κώδικα και προσομοιώνει το αποτέλεσμα του παραγόμενου κώδικα.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

{ int a = 5; { int b = 7; a = b + 3;

{ int a = 5; { int b = 7; a = b + 3; Σχεδίαση Γλωσσών & Μεταγλωττιστές Ενότητα 1: Γλώσσες με δομή block Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

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

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

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

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

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

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

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

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

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

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

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

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ Κεφαλαία και μικρά γράμματα ελληνικού αλφαβήτου: Α Ω και α ω Κεφαλαία και μικρά γράμματα λατινικού αλφαβήτου: A Z και a z Αριθμητικά ψηφία: 0 9 Ειδικοί χαρακτήρες: + - * / =. ( ),! & κενός

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Τελικός Κύκλος Διαγωνισμάτων Γ ΛΥΚΕΙΟΥ Κυριακή 17 Απριλίου 2016 Μάθημα: Α.Ε.Π.Π. KTIΡΙΟ ΤΜΗΜΑΤΑ ΚΑΛΟΚΑΙΡΙΝΑ ΑΡΓΥΡΟΥΠΟΛΗΣ - ΗΛΙΟΥΠΟΛΗΣ - ΓΛΥΦΑΔΑΣ

Τελικός Κύκλος Διαγωνισμάτων Γ ΛΥΚΕΙΟΥ Κυριακή 17 Απριλίου 2016 Μάθημα: Α.Ε.Π.Π. KTIΡΙΟ ΤΜΗΜΑΤΑ ΚΑΛΟΚΑΙΡΙΝΑ ΑΡΓΥΡΟΥΠΟΛΗΣ - ΗΛΙΟΥΠΟΛΗΣ - ΓΛΥΦΑΔΑΣ Τελικός Κύκλος Διαγωνισμάτων Γ ΛΥΚΕΙΟΥ Κυριακή 17 Απριλίου 2016 Μάθημα: Α.Ε.Π.Π. KTIΡΙΟ ΤΜΗΜΑΤΑ ΚΑΛΟΚΑΙΡΙΝΑ ΑΡΓΥΡΟΥΠΟΛΗΣ - ΗΛΙΟΥΠΟΛΗΣ - ΓΛΥΦΑΔΑΣ Ονοματεπώνυμο Τμήμα Καθηγητής Επιτηρητής Αίθουσα Διάρκεια:

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

HY-486 Αρχές Κατανεμημένου Υπολογισμού

HY-486 Αρχές Κατανεμημένου Υπολογισμού HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Πρώτη Προγραμματιστική Εργασία Προθεσμία παράδοσης: Τρίτη 2/5 στις 23:59. 1. Γενική Περιγραφή Στην πρώτη προγραμματιστική εργασία καλείστε

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

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

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

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΕΙΣΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΤΕΚΝΩΝ ΕΛΛΗΝΩΝ ΤΟΥ ΕΞΩΤΕΡΙΚΟΥ ΚΑΙ ΤΕΚΝΩΝ ΕΛΛΗΝΩΝ ΥΠΑΛΛΗΛΩΝ ΠΟΥ ΥΠΗΡΕΤΟΥΝ ΣΤΟ ΕΞΩΤΕΡΙΚΟ ΠΑΡΑΣΚΕΥΗ 9 ΣΕΠΤΕΜΒΡΙΟΥ 2016 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ ΟΜΑΔΑΣ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΟΙΚΟΝΟΜΙΑΣ

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

Γλώσσα Προγραμματισμού C

Γλώσσα Προγραμματισμού C Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas

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

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

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία Mεταγλωττιστές 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex Σκοπός: Το μάθημα αυτό αναφέρεται: στις κανονικές εκφράσεις στην δομή και το περιεχόμενο του αρχείου-εισόδου του flex Γενικά Θεωρία Κατά την

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

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

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Δομημένος Προγραμματισμός Ενότητα 5(γ): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

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

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

Εισαγωγή στον Προγραμματισμό

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

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΕΣ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΚΑΔ. ΕΤΟΣ: 20189 ΔΙΔΑΣΚΩΝ: Χ.ΝΟΜΙΚΟΣ 1η Σειρά Εργαστηριακών Ασκήσεων Οι εργαστηριακές ασκήσεις είναι ατομικές.

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

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

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

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

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β. ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Σύνολο χαρακτήρων της Pascal Για

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

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

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

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

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

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

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

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

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

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

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

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

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

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

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

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

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

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

ΜΑΘΗΜΑ: Μεταγλωττιστές Comment [h1]: Παράδειγμ α: https://ocp.teiath.gr/modules/ exercise/exercise_result.php?course=pey101&eurid=16 9 ΜΑΘΗΜΑ: Μεταγλωττιστές ΔΙΔΑΣΚΩΝ: Άγγελος Μιχάλας ΤΜΗΜΑ: Τμήμα Μηχανικών Πληροφορικής ΤΕ 1

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

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

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

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Δομές Δεδομένων

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Εισαγωγή στον Προγραµµατισµό Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Συναρτήσεις 19.11.16 Β. Ντουφεξή 2 Προβλήματα: Οσο μεγαλώνουν τα προγράμματα, γίνονται πιο πολύπλοκα.

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

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

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

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

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ 9.1 Εντολές Εισόδου/εξόδου Στην Pascal, 1. Tα δεδομένα των προγραμμάτων λαμβάνονται: είτε από το πληκτρολόγιο είτε από ένα αρχείο με τη χρήση των διαδικασιών read και readln,

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 5: Δείκτες και Δυναμική Δέσμευση- Αποδέσμευση Μνήμης στη C/ Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με δείκτες /Ένα πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

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

Επικοινωνία:

Επικοινωνία: Σπύρος Ζυγούρης Καθηγητής Πληροφορικής Επικοινωνία: spzygouris@gmail.com Πως ορίζεται ο τμηματικός προγραμματισμός; Πρόγραμμα Εντολή 1 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή 5 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Τ.Ε.Ι ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Πτυχιακή εργασία του φοιτητή Γιαννακίδη Αποστόλη Επιβλέπων καθηγητής Τσούλος

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας

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

an:3 are:6 a:10

an:3 are:6 a:10 Άσκηση 1 Προγραμματισμός Συστήματος Προθεσμία: 18 Μαΐου 2014 Σ αυτή την άσκηση θα υλοποιήσετε ένα σύστημα auto-complete κατά τη διάρκεια πληκτρολόγησης. Ο πυρήνας του συστήματος είναι μια δομή trie (απλό

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

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

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

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

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

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

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

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

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

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 4/11/2016 Ανακεφαλαίωση:

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

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

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

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

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

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

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

S, (5, -3, 34, -23, 7) ( /, @, *, _

S, (5, -3, 34, -23, 7) ( /, @, *, _ 1 Τι είναι αρχείο Οι πληροφορίες που καλείται να διαχειριστεί ο Η/Υ είναι τόσες πολλές που η μνήμη του δεν φτάνει να τις επεξεργαστεί όλες μαζί. Γι αυτό τον λόγο αποθηκεύονται σε μονάδες αποθήκευσης (π.χ

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

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

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

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

Γράψτε ένα πρόγραμμα που θα προσομοιώνει τη ρίψη ενός νομίσματος και θα εμφανίζει στην οθόνη Κορώνα» ή «Γράμματα».

Γράψτε ένα πρόγραμμα που θα προσομοιώνει τη ρίψη ενός νομίσματος και θα εμφανίζει στην οθόνη Κορώνα» ή «Γράμματα». Εισαγωγικές Δραστηριότητες Δραστηριότητα 1 (Υ) Υπολογίστε την τιμή των παρακάτω αριθμητικών εκφράσεων. Στη συνέχεια επαληθεύστε τα αποτελέσματα που βρήκατε στην κονσόλα της Python. A. 2 + 3 ** 3 * 2 B.

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ KAI Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΤΑΡΤΗ 06 ΣΕΠΤΕΜΒΡΙΟΥ 2017 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

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

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

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

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

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ» ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ» ΗΜΕΡ.ΑΝΑΘΕΣΗΣ: Δευτέρα 21 Δεκεμβρίου 2015 ΗΜΕΡ.ΠΑΡΑΔΟΣΗΣ: Δευτέρα 25 Ιανουαρίου 2016 Διδάσκοντες:

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

ΦΡΟΝΤΙΣΤΗΡΙΟ ΦΑΣΜΑ 21/4/2013

ΦΡΟΝΤΙΣΤΗΡΙΟ ΦΑΣΜΑ 21/4/2013 Γ ΤΑΞΗ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΘΕΜΑ Α [40 μόρια] α) Να επιλέξτε το γράμμα Σ, αν μια πρόταση είναι σωστή και

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

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ KAI ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΠΕΜΠΤΗ 26 ΣΕΠΤΕΜΒΡΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)

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

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΙ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΚΥΡΙΑΚΗ 23/04/2017 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ ( 7) ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν γράφοντας στο

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

Εργαστήριο 5. Εαρινό Εξάμηνο

Εργαστήριο 5. Εαρινό Εξάμηνο Τομέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ134 - Εισαγωγή στην Οργάνωση και Σχεδίαση Η/Υ 1 Εργαστήριο 5 Εαρινό Εξάμηνο 2012-2013 Στό χόι τόυ εργαστηρι όυ Χρήση στοίβας Αναδρομή Δομές δεδομένων Δυναμική

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

Α2. Να αναφέρετε ονομαστικά τις βασικές λειτουργίες που εκτελεί ένας υπολογιστής (Μονάδες 3)

Α2. Να αναφέρετε ονομαστικά τις βασικές λειτουργίες που εκτελεί ένας υπολογιστής (Μονάδες 3) Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΘΕΜΑ Α Α1. Να χαρακτηρίσετε σωστή (Σ) ή λανθασμένη (Λ) καθεμία από τις παρακάτω προτάσεις: 1. Ένα επιλύσιμο πρόβλημα είναι και δομημένο. 2. Ένας από τους

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 6 εκεµβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 3 ο Μέρος Ηµεροµηνία Παράδοσης:

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 Επιμέλεια: Ομάδα Διαγωνισμάτων από το Στέκι των Πληροφορικών Θέμα Α A1. Να γράψετε στο τετράδιό σας τους

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

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

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

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

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ : ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ 4 ο ΕΞΑΜΗΝΟ Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο

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

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

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

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

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

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

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2010 2011 Δ. Γουνόπουλος Ι. Ιωαννίδης Άσκηση 2: Υλοποίηση Ευρετηρίου Β+ Δένδρου Προθεσμία: 6 Ιουνίου 2011, 11:59μμ

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

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι 21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB Αλγόριθμος Διαδικασία Παράμετροι Τι είναι Αλγόριθμος; Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια διαδικασία ή να επιλύσουμε ένα

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

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( ) ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση

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

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος Κεφάλαιο 10 Υποπρογράμματα 1 10.1 Τμηματικός προγραμματισμός Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων.

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε Ναι Τέλος Α2 Διδακτική πρόταση ΕΝΟΤΗΤΑ 2η, Θέματα Θεωρητικής Επιστήμης των Υπολογιστών Κεφάλαιο 2.2. Παράγραφος 2.2.7.4 Εντολές Όσο επανάλαβε και Μέχρις_ότου Η διαπραγμάτευση των εντολών επανάληψης είναι σημαντικό

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 8: Ολισθήσεις Περιστροφές Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2018 Β ΦΑΣΗ

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

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ ) Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ. 147 159) Για τις γλώσσες προγραμματισμού πρέπει να έχουμε υπόψη ότι: Κάθε γλώσσα προγραμματισμού σχεδιάζεται για συγκεκριμένο σκοπό, δίνοντας ιδιαίτερη

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 04 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

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

Προγραμματισμός I (Θ)

Προγραμματισμός I (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012 ΘΕΜΑ Α Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: 1. Κάθε βρόγχος που υλοποιείται με την εντολή Για μπορεί να

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