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

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

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

Transcript

1 Γιώργος Δημητρίου Ενότητα 3 η : Ενδιάμεση Αναπαράσταση / SSA

2 Ενδιάμεση Αναπαράσταση (IR) Η ενδιάμεση αναπαράσταση αποθηκεύει τη συγκεντρωμένη πληροφορία από την ανάλυση ενός προγράμματος Από την ενδιάμεση αναπαράσταση ξεκινάει η παραγωγή τελικού κώδικα Σημαντικός στόχος του σχεδιαστή ενός μεταγλωττιστή αποτελεί η ανεξαρτητοποίηση του εμπρόσθιου από το οπίσθιο τμήμα με τη βοήθεια μιας ισχυρής αλλά ευέλικτης ενδιάμεσης αναπαράστασης

3 Μορφές IR Γραμμικές αναπαραστάσεις Πλησιέστερα στον τελικό κώδικα Δύσκολες για βελτιστοποίηση Αναπαραστάσεις γραφημάτων Πλησιέστερα στον αρχικό κώδικα Πιο ευέλικτες για βελτιστοποίηση SSA Ουσιαστικά γραμμική αναπαράσταση Καλή για βελτιστοποίηση

4 Παράδειγμα Αρχικός κώδικας: if (x>y) a=a+3; else a=a-2; b=a; Τετράδες: 1: <=,x,y,5 2: +,a,3,$1 3: :=,$1,-,a 4: jump,-,-,7 5: -,a,2,$2 6: :=,$2,-,a 7: :=,a,-,b x AST: if > = y a a stmt = + a 3 a b - = 2 a SSA: if (x>y) a1:=a+3 else a2:=a-2 a3:=φ(a1,a2) b:=a3

5 Εισαγωγή στη Μορφή SSA Ένα πρόγραμμα βρίσκεται σε μορφή SSA (Static Single-Assignment), εάν και μόνο εάν: Κάθε μεταβλητή ορίζεται στατικά ακριβώς μία φορά, και Κάθε χρήση μεταβλητής ακολουθεί πάντα τον ορισμό της

6 Γιατί SSA; Αποτελεί μια κοινή βάση για την επίλυση πολλών κλασικών προβλημάτων ανάλυσης ροής δεδομένων Ενσωματώνει ροή ελέγχου και ροή δεδομένων στην ίδια δομή Η μορφή SSA κατασκευάζεται και συντηρείται εύκολα Πολλοί αλγόριθμοι ανάλυσης ροής δεδομένων έχουν χαμηλότερη πολυπλοκότητα με SSA από ό,τι με AST

7 Στατικός Ορισμός Μεταβλητών Κάθε μεταβλητή έχει μόνο έναν ορισμό (δηλαδή ανάθεση τιμής) στον κώδικα Ο ορισμός αυτός μπορεί να βρίσκεται σε βρόχο, κι έτσι να εκτελείται πολλές φορές Άρα στην ουσία μια μεταβλητή ορίζεται δυναμικά πολλές φορές

8 Ορισμοί και Μονοπάτια Ελέγχου Κάθε μεταβλητή πρέπει να έχει ένα μοναδικό ορισμό σε κάθε σημείο χρήσης της (reaching definition) Όταν δύο μονοπάτια συναντώνται, εισάγεται μια ειδική συνάρτηση φ(), η οποία συνδέει τους διαφορετικούς ορισμούς μιας μεταβλητής στον ένα μοναδικό ορισμό που απαιτεί η μορφή SSA

9 Παράδειγμα: CFG a = a = = a+5 a = = a+5 Πολλαπλοί Ορισμοί Χρήσης = a+5 Stanford University

10 Παράδειγμα: Μορφή SSA a 1 = a 3 = = a 1 +5 a 2 = = a 2 +5 a 4 = φ(a 1,a 3 ) = a 4 +5 Μοναδικός Ορισμός Χρήσης Stanford University

11 Συναρτήσεις φ() Ένα όρισμα μιας συνάρτησης φ() αποτελεί τον ορισμό χρήσης από το αντίστοιχο μονοπάτι Η σειρά των ορισμάτων μιας συνάρτησης φ() είναι σημαντική για να ξέρουμε από ποιο μονοπάτι προέρχεται ο ορισμός Στην ουσία μια συνάρτηση φ() επιλέγει ένα από τα ορίσματά της, ανάλογα με το μονοπάτι που οδήγησε σε αυτήν

12 Αποδοτικότητα της Μορφής SSA Use-Def chains: Πολλές χρήσεις (uses) προς πολλούς ορισμούς (defs) a = a = a = Κόστος αναπαράστασης Δυσκολία διαχείρισης a a a Peking University

13 Αποδοτικότητα της Μορφής SSA Το πλήθος των ακμών μειώθηκε από 9 σε 6 Η συνάρτηση φ() απότελεί ορισμό (def) και τα ορίσματά της απότελούν χρήσεις (uses) Πολλές χρήσεις προς έναν ορισμό Κάθε ορισμός είναι α- ποκλειστικός για όλες τις χρήσεις του a = a = a = a = φ a,a,a) a a a Peking University

14 Μετονομασία Τιμών Η αναπαράσταση των ακμών usedef δεν είναι πια απαραίτητη a 1 = a 2 = a 4 = φ a 1,a 2,a 3 ) a 3 = a 4 a 4 a 4 Peking University

15 Μορφή SSA και Σημεία Σύγκλισης Ροής Ελέγχου Είναι αυτός ο κώδικας σε μορφή SSA; Όχι, υπάρχουν δύο ορισμοί για τη χρήση του a στο μπλοκ B4 (στα μπλοκ B1 και B3) Πώς μετατρέπεται ο κώδικας σε μορφή SSA; B3 B1 B2 b M[x] a 0 a b if b<4 Δημιουργούμε δύο εκδοχές για το a, μία στο B1 και μία στο B3 B4 c a + b Peking University

16 Μορφή SSA και Σημεία Σύγκλισης Ροής Ελέγχου Ποια εκδοχή του a χρησιμοποιούμε τώρα στο μπλοκ B4; B1 b M[x] a1 0 Εισάγουμε τη συνάρτηση φ() η οποία κατά κάποιον τρόπο ξέρει από ποιο μονοπάτι φτάσαμε στο μπλοκ B4: B3 B2 a2 b if b<4 φ a2, a1 = a2, αν φτάσαμε από το Β3 a1, αν φτάσαμε από το Β2 B4 c a? + b Peking University

17 Μορφή SSA και Σημεία Σύγκλισης Ροής Ελέγχου Ποια εκδοχή του a χρησιμοποιούμε τώρα στο μπλοκ B4; B1 b M[x] a1 0 Εισάγουμε τη συνάρτηση φ() η οποία κατά κάποιον τρόπο ξέρει από ποιο μονοπάτι φτάσαμε στο μπλοκ B4: B3 B2 a2 b if b<4 φ a2, a1 = a2, αν φτάσαμε από το Β3 a1, αν φτάσαμε από το Β2 B4 a3 φ(a2,a1) c a3 + b Peking University

18 Παράδειγμα Βρόχου a 0 b a+1 c c+b a b*2 if a < N return Σημείωση: Μόνο τα a και c έχουν χρήση στο σώμα του βρόχου πριν το νέο ορισμό τους. Το b ορίζεται εκ νέου στην αρχή του σώματος του βρόχου! a1 0 a3 (a1,a2) b1 (b0,b2) c2 (c0,c1) b2 a3+1 c1 c2+b2 a2 b2*2 if a2 < N return Peking University Η φ(b0,b2) δε χρειάζεται, αφού δεν υπάρχει χρήση του b0. Όμως η φάση εισαγωγής των συναρτήσεων φ() αυτό δεν το γνωρίζει. Άχρηστες συναρτήσεις αφαιρούνται από τη φάση απαλοιφής άχρηστου κώδικα.

19 Υλοποίηση Συναρτήσεων φ() Πώς υλοποιούμε μια συνάρτηση φ() που γνωρίζει ποιο μονοπάτι ελέγχου ακολουθείται; Απάντηση 1: Δεν την υλοποιούμε!! Η συνάρτηση φ() χρησιμοποιείται μόνο για να συνδέσει χρήσεις με ορισμούς κατά τη φάση της βελτιστοποίησης, αλλά δεν υλοποιείται. Απάντηση 2: Αν πρέπει να εκτελέσουμε μια συνάρτηση φ(), μπορούμε να την υλοποιήσουμε με εισαγωγή εντολών MOVE σε όλα τα μονοπάτια.

20 Εισαγωγή Συναρτήσεων φ() Μπορούμε να εισάγουμε μια συνάρτηση φ() για κάθε μεταβλητή σε κάθε σημείο σύγκλισης του γράφου ροής ελέγχου (CFG). Αλλά αυτό δεν είναι και η καλύτερη ιδέα. Ποια θα πρέπει να είναι τα κριτήριά μας για να εισάγουμε μια συνάρτηση φ() για κάποια μεταβλητή a σε κάποιον κόμβο z του CFG; Διαισθητικά, θα πρέπει να εισάγουμε μια συνάρτηση φ() εάν υπάρχουν δύο ορισμοί της μεταβλητής a που φτάνουν στον κόμβο z μέσα από διαφορετικά μονοπάτια.

21 Η Απλοϊκή Μέθοδος Απλή εισαγωγή μιας συνάρτησης φ() σε κάθε σημείο σύγκλισης του CFG Αλλά αυτό δεν είναι αποδοτικό εισάγουμε υπερβολικά πολλές άχρηστες συναρτήσεις φ()! Ποιος είναι καλός αλγόριθμος εισαγωγής μόνο των χρήσιμων συναρτήσεων φ();

22 Κριτήριο Σύγκλισης Μονοπατιών Εισαγωγή μιας συνάρτησης φ() για μια μεταβλητή a σε κάποιον κόμβο z, εάν είναι αληθείς όλες οι παρακάτω συνθήκες: 1. Υπάρχει μπλοκ x όπου ορίζεται η μεταβλητή a 2. Υπάρχει και άλλο μπλοκ y x που ορίζει την a 3. Υπάρχει μη κενό μονοπάτι Pxz από το x στο z 4. Υπάρχει μη κενό μονοπάτι Pyz από το y στο z 5. Τα μονοπάτια Pxz και Pyz δεν έχουν κοινούς κόμβους πέρα από τον z 6. Ο κόμβος z δεν εμφανίζεται και στα δύο μονοπάτια Pxz και Pyz πριν το τέλος τους, αλλά μπορεί να εμφανίζεται σε ένα από τα δύο. Ο κόμβος έναρξης θεωρείται ότι περιέχει ορισμό για κάθε μεταβλητή.

23 Επαναληπτικό Κριτήριο Σύγκλισης Μονοπατιών Εφόσον μια συνάρτηση φ() αποτελεί και αυτή ορισμό της μεταβλητής a, το κριτήριο σύγκλισης θα πρέπει να εφαρμόζεται επαναληπτικά: όσο υπάρχουν κόμβοι x, y, z που ικανοποιούν τις συνθήκες 1-6 και ο z δεν περιέχει συνάρτηση φ() για τη μεταβλητή a επανάλαβε εισαγωγή a (a, a,, a) στον κόμβο z Ο αλγόριθμος είναι υπερβολικά ακριβός, εφόσον απαιτεί την εξέταση κάθε τριάδας κόμβων x, y, z και κάθε μονοπατιού από τον x στον y. Μπορούμε καλύτερα;

24 Η Ιδέα των Συνόρων Κυριαρχίας Διαισθητικά: bb1 a bbn Μπλοκ κυριαρχούμενα από το bb1 a Σύνορο μεταξύ κυριαρχίας και μη-κυριαρχίας (Σύνορο Κυριαρχίας) Peking University

25 Σύνορα Κυριαρχίας (Dominance Frontiers) Το σύνορο κυριαρχίας DF(x) ενός κόμβου x είναι το σύνολο όλων των κόμβων z τέτοιων ώστε το x κυριαρχεί κάποιον πρόγονο του z, χωρίς αυστηρή κυριαρχία του z. Εάν το x κυριαρχεί το y και x y, τότε λέμε ότι το x κυριαρχεί αυστηρά το y

26 Υπολογισμός του Συνόρου Κυριαρχίας Διαισθητικά: Ποιο είναι το σύνορο κυριαρχίας του κόμβου 5; 1. Εύρεση περιοχής κυριαρχίας του κόμβου 5: {5, 6, 7, 8} Εύρεση προορισμών των ακμών που φεύγουν από την περιοχή κυριαρχίας του κόμβου 5 Προορισμοί που αποτελούν το σύνορο κυριαρχίας του κόμβου 5: DF(5) = { 4, 5, 12, 13} Peking University Γιατί ο κόμβος 5 βρίσκεται στο DF(5);

27 Αλγόριθμος Μετατροπής σε SSA Σε γενικές γραμμές, η μετατροπή ενός κώδικα σε μορφή SSA γίνεται σε τρία βήματα: Βήμα 1. Ξεκινώντας από το CFG, βρίσκουμε τα σύνορα κυριαρχίας όλων των κόμβων. Βήμα 2. Χρησιμοποιώντας τα σύνορα κυριαρχίας, καθορίζουμε τις θέσεις όπου θα εισαχθούν συναρτήσεις φ() για κάθε μεταβλητή του προγράμματος. Βήμα 3. Μετονομάζουμε τις μεταβλητές, αντικαθιστώντας κάθε αναφορά μιας μεταβλητής V με την κατάλληλη δεικτοδοτούμενη αναφορά μιας νέας μεταβλητής V i

28 Γράφος Ροής Ελέγχου (Control Flow Graph) CFG = (V, E), όπου V οι κόμβοι και Ε οι ακμές Το σύνολο V περιέχει και τους ειδικούς κόμβους START και END: Κάθε κόμβος είναι προσβάσιμος από τον κόμβο START Ο κόμβος END είναι προσβάσιμος από κάθε κόμβο του CFG. Ο κόμβος START δεν έχει προγόνους Ο κόμβος END δεν έχει απογόνους

29 Δέντρο Κυριαρχίας (Dominator Tree) Αν ο κόμβος X υπάρχει σε κάθε μονοπάτι μεταξύ START και Y, τότε ο X κυριαρχεί τονy. Η σχέση κυριαρχίας είναι ανακλαστική και μεταβατική. idom(y): άμεσος κυρίαρχος τουy Δέντρο Κυριαρχίας Ο κόμβος START αποτελεί τη ρίζα Κάθε κόμβος Υ εκτός του START έχει γονέα τον κόμβο idom(y)

30 Παράδειγμα Δέντρου Κυριαρχίας START START a b c d CFG END DT Stanford University

31 Παράδειγμα Δέντρου Κυριαρχίας START a a START b c d CFG END DT Stanford University

32 Παράδειγμα Δέντρου Κυριαρχίας START a a START b c b c d CFG END DT Stanford University

33 Παράδειγμα Δέντρου Κυριαρχίας START a a START b c b c d d CFG END DT Stanford University

34 Παράδειγμα Δέντρου Κυριαρχίας START a a START END b c b c d d CFG END DT Stanford University

35 Παράδειγμα Συνόρων Κυριαρχίας START a a START END b c b c d DT d DF(c) =? CFG END DF(a) =? Stanford University

36 Παράδειγμα Συνόρων Κυριαρχίας START a a START END b c b c d DT d DF(c) = {d} CFG END DF(a) =? Stanford University

37 Παράδειγμα Συνόρων Κυριαρχίας START START a a END b c b c d DT d DF(c) = {d} CFG END DF(a) = {END} Stanford University

38 Υπολογισμός Συνόρων Κυριαρχίας Σύνορο κυριαρχίας DF(X) του κόμβου X Σχέση 1: DF(X) ={Y P Pred(Y): X dom P and X!sdomY } Σχέση 2: DF(X) = DF local (X) Z Παιδιά(X) DF up (Z) DF local (X) = {Y Παιδιά(X) X!sdomY} = {Y Παιδιά(X) idom(y) X} DF up (Z) = {Y DF(Z) idom(z)!sdomy}

39 Υπολογισμός Συνόρων Κυριαρχίας Γιατί οι προηγούμενες σχέσεις 1 και 2 είναι ισοδύναμες; Είναι εύκολο να πάμε από τη σχέση 1 στη σχέση 2. Άρα πρέπει να δείξουμε ότι η σχέση 2 βρίσκει κάθε κόμβο του DF(X). Έστω Y DF(X) και U->Y ακμή τέτοια, ώστε ο Χ κυριαρχεί τον U αλλά δεν κυριαρχεί αυστηρά τονy. Αν U = X, τότεy DF local (X) Αν U X, τότε υπάρχει μονοπάτι μεταξύ Χ και U στο Δέντρο Κυριαρχίας κάτι που σημαίνει ότι υπάρχει παιδί Ζ του Χ το οποίο να κυριαρχεί τον U. Ο Z δεν κυριαρχεί αυστηρά τον Υ, επειδή ο Χ δεν κυριαρχεί αυστηρά τονy. ΆραY DF up (Z).

40 Συναρτήσεις φ() και Σύνορο Κυριαρχίας Διαισθητικά καταλαβαίνουμε ότι η σχέση Y DF(X) σημαίνει: ΟY έχει πολλαπλούς προγόνους Ο X κυριαρχεί κάποιον από αυτούς, έστω τον U, οπότε ο U κληρονομεί όλες τις σχέσεις του κόμβου X Οι ορισμοί χρήσης του Υ προέρχονται από τον U και άλλους προγόνους Άρα ο Y είναι ακριβώς μια θέση όπου πρέπει να μπει συνάρτηση φ()

41 Εισαγωγή Συναρτήσεων φ() Αλγόριθμος: Για κάθε μεταβλητή V Βάλε σε μια λίστα εργασίας W όλους τους κόμβους με ανάθεση στη V Όσο υπάρχει X στη λίστα W επανάλαβε Για κάθε κόμβοy στο DF(X) κάνε Εάν δεν υπάρχει φ() στονy τότε Πρόσθεσε (V = φ (V,,V)) στονy Εάν οy δεν έχει ξανασυναντηθεί, βάλτον στη λίστα W.

42 Μετονομασία Μεταβλητών Αναδρομικά για κάθε μεταβλητή, ξεκινώντας με τον κόμβο START, χρησιμοποιώντας στοίβα Για τον κόμβο X Για κάθε ανάθεση (V = ) του X Μετονόμασε τις χρήσεις της μεταβλητής V με το όνομα στην κορυφή της στοίβας Βάλε το νέο όνομα V i στη στοίβα i = i + 1 Μετονόμασε τα ορίσματα της συνάρτησης φ() μέσω των ακμών του CFG Εφάρμοσε αναδρομικά για όλα τα παιδιά του Χ στο δέντρο κυριαρχίας Για κάθε ανάθεση (V = ) του X Βγάλε το V i από τη στοίβα

43 Παραγωγή Κώδικα από SSA Απλοϊκή λύση: Μια συνάρτηση φ() με k ορίσματα, που βρίσκεται στην αρχή ενός κόμβου Χ, μπορεί να αντικατασταθεί α- πό k απλές αναθέσεις, στο τέλος κάθε πατρικού κόμβου του Χ στο CFG. Πρόβλημα αποδοτικότητας κώδικα;

44 Παραγωγή Κώδικα από SSA Επιλογή 1: χρωματισμός Υπολόγισε τις διάρκειες ζωής των μεταβλητών και δώσε ένα μοναδικό όνομα μεταβλητής για κάθε διάρκεια ζωής Όπως κάνουμε στη δέσμευση καταχωρητών! Επιλογή 2: απλή διαγραφή όλων των συναρτήσεων φ() Οι βελτιστοποιήσεις με βάση τη μορφή SSA πρέπει να μη δημιουργούν επικαλυπτόμενες διάρκειες ζωής

45 Απαλοιφή Άχρηστου Κώδικα Για ποιο λόγο ένας κώδικας είναι άχρηστος; Ανάθεση χωρίς επόμενη χρήση Μέθοδος απαλοιφής άχρηστου κώδικα Σημείωσε όλες τις εντολές ως άχρηστες Σημείωσε κάποιες εντολές ως χρήσιμες (ζωντανές) με βάση κάποια κριτήρια Έτσι όμως δημιουργείς και άλλες χρήσιμες εντολές Πραγματικά άχρηστος κώδικας είναι εκείνος που έμεινε σημειωμένος ως άχρηστος Peking University

46 Παράδειγμα Χρήσης SSA Διαισθητική απαλοιφή άχρηστου κώδικα (dead code elimination) Εφόσον για κάθε μεταβλητή υπάρχει μόνο ένας ορισμός, αν η λίστα χρήσεων της μεταβλητής είναι κενή, τότε ο ορισμός είναι άχρηστος Όταν μια εντολή v x op y απαλείφεται επειδή δεν υπάρχει χρήση της v, τότε η εντολή πρέπει να απαλειφτεί και από τις χρήσεις των x και y, κάτι που μπορεί να αχρηστεύσει και τους ορισμούς αυτών των μεταβλητών, κοκ

47 Παράδειγμα Χρήσης SSA Διαισθητική διάδοση σταθερής τιμής (constant propagation) Αν υπάρχει εντολή v c, όπου c είναι σταθερά, τότε όλες οι χρήσεις της v μπορούν να αντικατασταθούν με c Μια εντολή της μορφής v φ(c1, c2,, cn) όπου όλα τα ci είναι ταυτόσημα μπορεί να απλοποιηθεί σε v c. Χρησιμοποιώντας αλγόριθμο με λίστα εργασίας σε ένα πρόγραμμα που βρίσκεται σε μορφή SSA, υλοποιούμε διάδοση σταθεράς σε γραμμικό χρόνο

48 Παράδειγμα i=1; j=1; k=0; while(k<100) { if(j<20) { j=i; k=k+1; } else { j=k; k=k+2; } } return j; } B5 B3 j i k k+1 B7 B2 B1 if j<20 i 1 j 1 k 0 if k<100 j k k k+2 return j B6 B4 Peking University

49 Παράδειγμα i=1; j=1; k=0; while(k<100) { if(j<20) { j=i; k=k+1; } else { j=k; k=k+2; } } return j; } B5 B3 j i k3 k+1 B7 B1 B2 if j<20 i 1 j 1 k1 0 if k<100 return j j k k5 k+2 B6 B4

50 Παράδειγμα i=1; j=1; k=0; while(k<100) { if(j<20) { j=i; k=k+1; } else { j=k; k=k+2; } } return j; } B5 j i k3 k+1 B7 B3 B1 B2 if j<20 i 1 j 1 k1 0 if k<100 return j j k k5 k+2 k4 (k3,k5) B6 B4

51 Παράδειγμα i=1; j=1; k=0; while(k<100) { if(j<20) { j=i; k=k+1; } else { j=k; k=k+2; } } return j; } B5 j i k3 k+1 B7 B3 B2 B1 if j<20 i 1 j 1 k1 0 k2 (k4,k1) if k<100 return j j k k5 k+2 k4 (k3,k5) B6 B4

52 Παράδειγμα i=1; j=1; k=0; while(k<100) { if(j<20) { j=i; k=k+1; } else { j=k; k=k+2; } } return j; } B5 j i k3 k2+1 B7 B3 B2 B1 if j<20 i 1 j 1 k1 0 k2 (k4,k1) if k2<100 return j j k2 k5 k2+2 k4 (k3,k5) B6 B4

53 Παράδειγμα i=1; j=1; k=0; while(k<100) { if(j<20) { j=i; k=k+1; } else { j=k; k=k+2; } } return j; } B5 j3 i1 k3 k2+1 B7 B3 B2 if j2<20 B1 j4 (j3,j5) k4 (k3,k5) i1 1 j1 1 k1 0 j2 (j4,j1) k2 (k4,k1) if k2<100 return j2 j5 k2 k5 k2+2 B6 B4

54 Διάδοση Σταθεράς B1 i1 1 j1 1 k1 0 B1 i1 1 j1 1 k1 0 B2 j2 (j4,j1) k2 (k4,k1) if k2<100 B2 j2 (j4, 1) k2 (k4,0) if k2<100 B3 if j2<20 return j2 B4 B3 if j2<20 return j2 B4 B5 j3 i1 k3 k2+1 j5 k2 k5 k2+2 B6 B5 j3 1 k3 k2+1 j5 k2 k5 k2+2 B6 B7 j4 (j3,j5) k4 (k3,k5) B7 j4 (j3,j5) k4 (k3,k5)

55 Απαλοιφή Άχρηστου Κώδικα B1 i1 1 j1 1 k1 0 B2 j2 (j4, 1) k2 (k4,0) if k2<100 B2 j2 (j4,1) k2 (k4,0) if k2<100 B3 if j2<20 return j2 B4 B3 if j2<20 return j2 B4 B5 j3 1 k3 k2+1 j5 k2 k5 k2+2 B6 B5 j3 1 k3 k2+1 j5 k2 k5 k2+2 B6 B7 j4 (j3,j5) k4 (k3,k5) B7 j4 (j3,j5) k4 (k3,k5)

56 Συνέχεια B2 j2 (j4,1) k2 (k4,0) if k2<100 B2 j2 (j4,1) k2 (k4,0) if k2<100 B3 if j2<20 return j2 B4 B3 if j2<20 return j2 B4 B5 j3 1 k3 k2+1 j5 k2 k5 k2+2 B6 B5 j3 1 k3 k2+1 j5 k2 k5 k2+2 B6 B7 j4 (j3,j5) k4 (k3,k5) B7 j4 (1,j5) k4 (k3,k5)

57 Κι Άλλη Βελτιστοποίηση B5 k3 k2+1 B7 B3 B2 if j2<20 j4 (1,j5) k4 (k3,k5) j2 (j4,1) k2 (k4,0) if k2<100 return j2 j5 k2 k5 k2+2 B6 B4 Μπορούμε να δούμε ότι το μπλοκ Β6 δεν εκτελείται ποτέ! Πώς μπορούμε να το καταλάβουμε αυτό και να απλοποιήσουμε τον κώδικα; Χρησιμοποιώντας τη διάδοση σταθεράς υπό συνθήκη, η οποία βρίσκει ότι το j2 δεν αλλάζει τιμή και έτσι επιτρέπει περαιτέρω απαλοιφή άχρηστου κώδικα

58 Περαιτέρω Απαλοιφή Άχρηστου Κώδικα B2 j2 (j4,1) k2 (k4,0) if k2<100 B2 j2 (j4,1) k2 (k4,0) if k2<100 B3 if j2<20 return j2 B4 return j2 B4 k3 k2+1 j5 k2 k5 k2+2 B6 B5 k3 k2+1 B7 j4 (1,j5) k4 (k3,k5) B7 j4 (1) k4 (k3)

59 Απαλοιφή Συναρτήσεων φ B2 j2 (j4,1) k2 (k4,0) if k2<100 B2 j2 (j4,1) k2 (k4,0) if k2<100 return B4 j2 B4 return j2 B4 B5 k3 k2+1 B5 k3 k2+1 B7 j4 (1) k4 (k3) B7 j4 1 k4 k3

60 Διάδοση Σταθεράς και Αντιγράφου B2 j2 (j4,1) k2 (k4,0) if k2<100 B2 j2 (1,1) k2 (k3,0) if k2<100 return j2 B4 return j2 B4 B5 k3 k2+1 B5 k3 k2+1 B7 j4 1 k4 k3 B7 j4 1 k4 k3

61 Κι Άλλος Άχρηστος Κώδικας B2 j2 (1,1) k2 (k3,0) if k2<100 B2 j2 (1,1) k2 (k3,0) if k2<100 return j2 B4 return j2 B4 B5 k3 k2+1 B5 k3 k2+1 B7 j4 1 k4 k3

62 Κι Άλλη Απλοποίηση Συνάρτησης φ B2 j2 (1,1) k2 (k3,0) if k2<100 B2 j2 1 k2 (k3,0) if k2<100 return j2 B4 return j2 B4 B5 k3 k2+1 B5 k3 k2+1

63 Κι Άλλη Διάδοση Σταθεράς B2 j2 1 k2 (k3,0) if k2<100 B2 j2 1 k2 (k3,0) if k2<100 return j2 B4 return 1 B4 B5 k3 k2+1 B5 k3 k2+1

64 Τελικός Κώδικας! B2 j2 1 k2 (k3,0) if k2<100 return 1 B4 return 1 B4 B5 k3 k2+1

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

Θέματα Μεταγλωττιστών Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 3 η : Ενδιάμεση Αναπαράσταση/ SSA Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Ενδιάμεση Αναπαράσταση (IR) Η ενδιάμεση αναπαράσταση

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

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

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 7 η : Περιοχές: Εναλλακτική Μέθοδος Ανάλυσης Ροής Δεδομένων Περιοχές (Regions) Σε κάποιες περιπτώσεις βρόχων η ανάλυση ροής δεδομένων με τον επαναληπτικό αλγόριθμο συγκλίνει αργά

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

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

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

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

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

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

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

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

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 9 η : Θέματα Δρομολόγησης Εντολών ILP Παραλληλισμός επιπέδου εντολής Εξαρτήσεις δεδομένων Εξαρτήσεις ελέγχου (διαδικασιακές) Με διαθέσιμους πόρους, οι εντολές μπορούν να εκτελεστούν

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

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

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 6 η : Αλγεβρικά Πλαίσια Ανάλυσης Ροής Δεδομένων Αναπαράσταση Προγράμματος Γράφος Ροής Ελέγχου (Control Flow Graph CFG) Κόμβοι N εντολές Ακμές E ροή ελέγχου pred(n) = σύνολο άμεσων

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

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2) Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Κανονικές Εκφράσεις (1.3) Τυπικός Ορισμός Ισοδυναμία με κανονικές γλώσσες Μη Κανονικές

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

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

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

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

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

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

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

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

ΤΕΙ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ ÌïëëÜ Ì. Á μýô Á.Ì. : 5 moll@moll.r ΤΕΙ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ ΜΑΘΗΜΑ : ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΑΔΙΚΤΥΟ (ΕΡΓΑΣΤΗΡΙΟ) Ε ΕΞΑΜΗΝΟ ΕΙΣΗΓΗΤΕΣ: Χαϊδόγιαννος Χαράλαμπος ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ

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

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

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

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

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

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

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

Μεταγλωττιστές Βελτιστοποίηση

Μεταγλωττιστές Βελτιστοποίηση Μεταγλωττιστές Βελτιστοποίηση Νίκος Παπασπύρου nickie@softlab.ntua.gr Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Πολυτεχνειούπολη, 15780

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες Κατευθυνόμενο γράφημα Συνάρτηση χωρητικότητας 2 6 20 Ροή δικτύου Συνάρτηση αφετηρίακός κόμβος 0 με τις ακόλουθες ιδιότητες 9 7 τερματικός κόμβος Περιορισμός χωρητικότητας: Αντισυμμετρία: Διατήρηση ροής:

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

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου 11η Διάλεξη 12 Ιανουαρίου 2017 1 Ανεξάρτητο σύνολο Δοθέντος ενός μη κατευθυνόμενου γραφήματος G = (V, E), ένα ανεξάρτητο σύνολο (independent set) είναι ένα

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

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

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

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

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες Κατευθυνόμενο γράφημα Συνάρτηση χωρητικότητας 12 16 2 Ροή δικτύου Συνάρτηση αφετηρίακός κόμβος 13 1 με τις ακόλουθες ιδιότητες 4 14 9 7 4 τερματικός κόμβος Περιορισμός χωρητικότητας: Αντισυμμετρία: Διατήρηση

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

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

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

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

3η Σειρά Γραπτών Ασκήσεων

3η Σειρά Γραπτών Ασκήσεων 1/48 3η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 2/48 1 Άσκηση 1: Πομποί και Δέκτες 2 Άσκηση 2: Διακοπές στην Ικαρία 3 Άσκηση 3: Επιστροφή στη Γη 4 Άσκηση

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Γραφήματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Γραφήματα Κατευθυνόμενο Γράφημα Ένα κατευθυνόμενο γράφημα G είναι ένα ζευγάρι (V, E) όπου V είναι ένα

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

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 1 2 3 4 5 πλήθος κορυφών πλήθος ακμών Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από

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

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

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ Συνεκτικότητα Γραφημάτων 123 ΚΕΦΑΛΑΙΟ 4 ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ 4.1 Τοπική και Ολική Συνεκτικότητα Γραφημάτων 4.2 Συνεκτικότητα Μη-κατευθυνόμενων Γραφημάτων 4.3 Συνεκτικότητα Κατευθυνόμενων Γραφημάτων

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

Διαχρονικές δομές δεδομένων

Διαχρονικές δομές δεδομένων Διαχρονικές δομές δεδομένων Μια τυπική δομή δεδομένων μεταβάλλεται με πράξεις εισαγωγής ή διαγραφής Π.χ. κοκκινόμαυρο δένδρο εισαγωγή 0 18 0 5 39 73 1 46 6 80 Αποκατάσταση ισορροπίας 5 39 73 0 46 6 80

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

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

Ουρά Προτεραιότητας (priority queue)

Ουρά Προτεραιότητας (priority queue) Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει τις ακόλουθες λειτουργίες PQinsert : εισαγωγή στοιχείου PQdelmax : επιστροφή του στοιχείου με το μεγαλύτερο* κλειδί και διαγραφή του

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

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

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

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

Συνδετικότητα γραφήματος (graph connectivity)

Συνδετικότητα γραφήματος (graph connectivity) Συνδετικότητα γραφήματος (graph connectivity) Συνδετικότητα γραφήματος (graph connectivity) Υπάρχει μονοπάτι μεταξύ α και β; α Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές ενός

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

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

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 26: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας -Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι

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

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

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

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

1 Διάσχιση κατευθυνόμενων γραφημάτων

1 Διάσχιση κατευθυνόμενων γραφημάτων ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2010 11 Ιστοσελίδα μαθήματος: http://eclass.teilam.gr/di288 5ο ΕΡΓΑΣΤΗΡΙΟ

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Ενότητα 9 (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή ισχύει ότι S i S j =, για κάθε i,j µε i j και S 1 S k = U. Λειτουργίες q MakeSet(X): επιστρέφει

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

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

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

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

Σημειωματάριο Τετάρτης 29 Νοε. 2017

Σημειωματάριο Τετάρτης 29 Νοε. 2017 Σημειωματάριο Τετάρτης 29 Νοε. 2017 Γραφήματα (γράφοι), η αναπαράστασή τους στον υπολογιστή και μερικά προβλήματα σε αυτά Είδαμε σήμερα λίγα πράγματα για γραφήματα (ή γράφους). Γράφημα είναι, στην απλούστερή

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

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

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

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

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

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 10 η : Βελτιστοποιήσεις Τοπικότητας και Παραλληλισμού: Εξαρτήσεις και Μετασχηματισμοί Βρόχων Επεξεργασία Πινάκων Παραλληλισμός επιπέδου βρόχου Λόγω παραλληλισμού δεδομένων Επιτυγχάνεται

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Ικανοποίηση Περιορισμών Κατηγορία προβλημάτων στα οποία είναι γνωστές μερικές

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

Κεφάλαιο 10 Ψηφιακά Λεξικά

Κεφάλαιο 10 Ψηφιακά Λεξικά Κεφάλαιο 10 Ψηφιακά Λεξικά Περιεχόμενα 10.1 Εισαγωγή... 213 10.2 Ψηφιακά Δένδρα... 214 10.3 Υλοποίηση σε Java... 222 10.4 Συμπιεσμένα και τριαδικά ψηφιακά δένδρα... 223 Ασκήσεις... 225 Βιβλιογραφία...

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων Τι θα κάνουμε σήμερα Εισαγωγή Πολυταινιακές Μηχανές Turing (3.2.1) Μη Ντετερμινιστικές Μηχανές

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 10: Αυτόματα Στοίβας II ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 10: Αυτόματα Στοίβας II Τι θα κάνουμε σήμερα Ισοδυναμία αυτομάτων στοίβας με ασυμφραστικές γραμματικές (2.2.3) 1 Ισοδυναμία PDA με CFG Θεώρημα: Μια

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

Ουρά Προτεραιότητας (priority queue)

Ουρά Προτεραιότητας (priority queue) Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει δύο βασικές λειτουργίες : Εισαγωγή στοιχείου με δεδομένο κλειδί. Επιστροφή ενός στοιχείου με μέγιστο (ή ελάχιστο) κλειδί και διαγραφή

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

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

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

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

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

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

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

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Κεφάλαιο 11 Ένωση Ξένων Συνόλων Κεφάλαιο 11 Ένωση Ξένων Συνόλων Περιεχόμενα 11.1 Εισαγωγή... 227 11.2 Εφαρμογή στο Πρόβλημα της Συνεκτικότητας... 228 11.3 Δομή Ξένων Συνόλων με Συνδεδεμένες Λίστες... 229 11.4 Δομή Ξένων Συνόλων με Ανοδικά

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

Συνεκτικότητα Γραφήματος

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Μεταγλωττιστές Στοίβα Εκτέλεσης και Εγγραφήματα Δραστηριοποίησης Σε όλες σχεδόν τις μοντέρνες γλώσσες προγραμματισμού,

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

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

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

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

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου Ανάλυση αλγορίθμων Παράμετροι απόδοσης ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, επικοινωνία (π.χ. σε κατανεμημένα συστήματα) Προσπάθεια υλοποίησης Ανάλυση της απόδοσης Θεωρητική

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

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ 1. Έστω ότι ο καθηγητής σας δίνει δύο αριθμούς και σας ζητάει να του πείτε πόσο είναι το άθροισμά τους. Διατυπώστε

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

9. Συστολικές Συστοιχίες Επεξεργαστών

9. Συστολικές Συστοιχίες Επεξεργαστών Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 208 9. Συστολικές Συστοιχίες Επεξεργαστών Οι συστολικές συστοιχίες επεξεργαστών είναι επεξεργαστές ειδικού σκοπού οι οποίοι είναι συνήθως προσκολλημένοι σε

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

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

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

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

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

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

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) ({ G η G είναι μια ασυμφραστική γραμματική που δεν παράγει καμιά λέξη με μήκος μικρότερο του 2 } (β) { Μ,w

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

Ενδεικτικές Ερωτήσεις Θεωρίας

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

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

Φροντιστήριο. Παραγωγή τελικού κώδικα. Παραγωγή τελικού κώδικα

Φροντιστήριο. Παραγωγή τελικού κώδικα. Παραγωγή τελικού κώδικα ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Παραγωγή τελικού κώδικα Από τον ενδιάμεσο κώδικα στον τελικό (1/2) Τα ορίσματα των εντολών ενδιάμεσου κώδικα είναι του τύπου expr*. Αυτές οι εκφράσεις θα πρέπει

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

Μεταγλωττιστές Βελτιστοποίηση

Μεταγλωττιστές Βελτιστοποίηση Βελτιστοποίηση (i) Μεταγλωττιστές Βελτιστοποίηση Νίκος Παπασπύρου nickie@softlab.ntua.gr Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Πολυτεχνειούπολη,

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

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 17 Σωροί (Heaps) έκδοση 10 1 / 19 Heap Σωρός Ο σωρός είναι μια μερικά ταξινομημένη δομή δεδομένων που υποστηρίζει

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ 1. Ποιες από τις παρακάτω εντολές είναι σωστές; α) if A + B

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

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην άδεια χρήσης Creative Commons και

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

HY Λογική Διδάσκων: Δ. Πλεξουσάκης Εαρινό Εξάμηνο. Φροντιστήριο 6

HY Λογική Διδάσκων: Δ. Πλεξουσάκης Εαρινό Εξάμηνο. Φροντιστήριο 6 HY-180 - Λογική Διδάσκων: Δ. Πλεξουσάκης Εαρινό Εξάμηνο 2015-2016 Φροντιστήριο 6 Α) ΘΕΩΡΙΑ Μέθοδος Επίλυσης (Resolution) Στη μέθοδο της επίλυσης αποδεικνύουμε την ικανοποιησιμότητα ενός συνόλου προτάσεων,

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

Πολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις.

Πολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις. Θέση Church-Turing I Πολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις Θέση Church-Turing: Όλες οι υπολογίσιμες συναρτήσεις

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

Γέφυρες σε Δίκτυα. Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος. Γέφυρα του (με αφετηρία τον ) :

Γέφυρες σε Δίκτυα. Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος. Γέφυρα του (με αφετηρία τον ) : Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος και Γέφυρα του (με αφετηρία τον ) : Ακμή που περιέχεται σε κάθε μονοπάτι από το στο s a b c d e f g h i j k l Μας δίνεται ένα δίκτυο (κατευθυνόμενο

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου Χριστίνα Σπυροπούλου 8η Διάλεξη 8 Δεκεμβρίου 2016 1 Ασύγχρονη κατασκευή BFS δέντρου Στα σύγχρονα συστήματα ο αλγόριθμος της πλημμύρας είναι ένας απλός αλλά

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

Δομές Δεδομένων Ενότητα 2

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

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

Υπολογιστικά & Διακριτά Μαθηματικά

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

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

Διερεύνηση γραφήματος

Διερεύνηση γραφήματος Διερεύνηση γραφήματος Διερεύνηση γραφήματος Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος ή κατά βάθος. Καθοδική διερεύνηση

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

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

Σειρά Προβλημάτων 3 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 3 Λύσεις Να δώσετε ασυμφραστικές γραμματικές που να παράγουν τις πιο κάτω γλώσσες: (α) { xyxy rev x {a, b}, y {a, b} * } (α) Μια γραμματική για τη γλώσσα έχει ως εξής: S as a

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

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 8 ο Μερική Επικάλυψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

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

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

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

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

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

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 6: Προβλήματα ικανοποίησης περιορισμών. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 6: Προβλήματα ικανοποίησης περιορισμών. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 6: Προβλήματα ικανοποίησης περιορισμών Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

Βασικές Έννοιες Θεωρίας Γραφημάτων

Βασικές Έννοιες Θεωρίας Γραφημάτων Βασικές Έννοιες Θεωρίας Γραφημάτων Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Γραφήματα Μοντελοποίηση πολλών σημαντικών προβλημάτων

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 20: Δυαδικό Δέντρο Αναζήτησης Δυαδικό δέντρο Κάθε κόμβος «γονέας» περιέχει δύο δείκτες που δείχνουν σε δύο κόμβους «παιδιά» του ιδίου τύπου. Αν οι δείκτες προς αυτούς

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

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

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

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

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { R η R είναι μια κανονική έκφραση η οποία παράγει μια μη πεπερασμένη γλώσσα} (β) { G η G είναι μια CFG η οποία

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

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

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ Καθηγητής Πληροφορικής Απαγορεύεται η αναπαραγωγή των σημειώσεων χωρίς αναφορά στην πηγή Οι σημειώσεις, αν και βασίζονται στο διδακτικό πακέτο, αποτελούν προσωπική θεώρηση της σχετικής ύλης και όχι επίσημο

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

Επίλυση 1 ης Εργασίας. Παραδόθηκαν: 11/12 15%

Επίλυση 1 ης Εργασίας. Παραδόθηκαν: 11/12 15% Επίλυση 1 ης Εργασίας Παραδόθηκαν: 11/12 15% ΘΕΜΑ 1 ΑΠΑΝΤΗΣΗ Α) Συνθήκη συντήρησης της αρχικής ροής Το φορτίο που μεταφέρεται από τον r είναι 3 (r->1=1) + (r->3=0) + (r- >4=2) Το φορτίο που φθάνει στον

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

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e Άσκηση 1 Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e Υπάρχουν τρία μαύρα τετραγωνάκια (b), τρία άσπρα (w) και ένα κενό (e). Η σπαζοκεφαλιά έχει τις ακόλουθες

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

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

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

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

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

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

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π. Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων CO.RE.LAB. ΣΗΜΜΥ - Ε.Μ.Π. Άσκηση 1 η : Παιχνίδι επιλογής ακμών Έχουμε ένα ακυκλικό κατευθυνόμενο γράφο, μια αρχική κορυφή και δυο παίκτες. Οι παίκτες διαδοχικά

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

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

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

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

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους k πρόβλημα μεγέθους Ν-k Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση επιλύουμε αναδρομικά τα υποπροβλήματα πρόβλημα μεγέθους k πρόβλημα

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

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

ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΟΛΙΤΙΣΜΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΚΑΙ ΝΕΩΝ ΤΕΧΝΟΛΟΓΙΩΝ ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΚΤΙΚΗ ΕΝΟΤΗΤΑ 3 ΘΕΜΑ: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ ΓΡΑΦΗΜΑΤΑ Επίκουρος Καθηγητής ΠΕΡΙΕΧΟΜΕΝΟ

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

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα Αλγόριθμοι πολυωνυμικού χρόνου Ένας αλγόριθμος πολυωνυμικού χρόνου έχει χρόνο εκτέλεσης όπου είναι μία (θετική) σταθερά Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό

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

Προβλήματα Ελάχιστου Κόστους Ροής σε Δίκτυο. Δίκτυα Ροής Ελάχιστου Κόστους (Minimum Cost Flow Networks)

Προβλήματα Ελάχιστου Κόστους Ροής σε Δίκτυο. Δίκτυα Ροής Ελάχιστου Κόστους (Minimum Cost Flow Networks) Προβλήματα Ελάχιστου Κόστους Ροής σε Δίκτυο Ορισμοί Παραδείγματα Δικτυακή Simplex (προβλήματα με και χωρίς φραγμούς). Δίκτυα Ροής Ελάχιστου Κόστους (Minimum ost Flow Networks) Ένα δίκτυο μεταφόρτωσης αποτελείται

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες

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

ΘΕΜΑ Α. 1. Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων.

ΘΕΜΑ Α. 1. Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων. ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΑ ΕΙΔΙΚΟΤΗΤΑΣ ΤΕΤΑΡΤΗ 19/04/2017 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΠΕΝΤΕ (5) Α1. Να χαρακτηρίσετε τις προτάσεις που

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

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός... 1 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Διάρκεια 3 ώρες Στοιχεία Μαθητή: Όνομα... Επώνυμο... Βαθμός... 2 Θεμα Α (30%) Α1 ΣΩΣΤΟ - ΛΑΘΟΣ 1. Ένα υποπρόγραμμα δεν μπορεί να κληθεί περισσότερες

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