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

Σχετικά έγγραφα
Θέματα Μεταγλωττιστών

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

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

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

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

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem

έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

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

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

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

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

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

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

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

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

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

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

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

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

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

Αναζήτηση Κατά Βάθος. Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

Στοχαστικές Στρατηγικές. διαδρομής (1)

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

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

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

Προσεγγιστικοί Αλγόριθμοι

Προσεγγιστικοί Αλγόριθμοι

Λύσεις 4ης Σειράς Ασκήσεων

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων/ γραφήματα. Τι έχουμε δει μέχρι τώρα. Ισομορφισμός γράφων: Μία σχέση ισοδυναμίας μεταξύ γράφων.

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

ΜΕΜ251 Αριθμητική Ανάλυση

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 4)

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

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

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

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

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

Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

- ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 6: ΜΗ ΠΕΠΕΡΑΣΜΕΝΟ ΟΡΙΟ ΣΤΟ

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

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

(a 1, b 1 ) (a 2, b 2 ) = (a 1 a 2, b 1 b 2 ).

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι έχουµε δει µέχρι τώρα. Υπογράφηµα Γράφοι

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

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Εισαγωγή στους Αλγορίθμους

Προγραμματισμός Η/Υ (ΤΛ2007 )

Μέθοδοι πολυδιάστατης ελαχιστοποίησης

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

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

Αλγόριθµοι Γραφηµάτων

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

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

Ελαφρύτατες διαδρομές

Εργαστήριο 9 Συναρτήσεις στη PASCAL. Η έννοια του κατακερματισμού. Συναρτήσεις. Σκοπός

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

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

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

Αναζήτηση Κατά Πλάτος

Non Linear Equations (2)

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος lantzos@teiser.gr

Υπολογισμός - Εντολές Επανάληψης

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Δομές ελέγχου ροής προγράμματος

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

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

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

Διάλεξη 04: Παραδείγματα Ανάλυσης

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Αριθμητική Ανάλυση & Εφαρμογές

Κεφάλαιο 4: Διαφορικός Λογισμός

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

2 (1) 1 0 ln( (2)) 3 (2) 3 0. e f και f f. f( g( x)) 3x 4, για κάθε x. συνx 5. ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ 1 ου ΚΕΦΑΛΑΙΟΥ

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

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

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

Transcript:

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

Περιοχές (Regions) Σε κάποιες περιπτώσεις βρόχων η ανάλυση ροής δεδομένων με τον επαναληπτικό αλγόριθμο συγκλίνει αργά Εναλλακτικά μπορούμε να χρησιμοποιήσουμε τη μέθοδο των περιοχών Περιοχή είναι συνδυασμός βασικών ενοτήτων και ακμών του CFG σε νέο σύνθετο κόμβο του CFG με ενιαία συνάρτηση διάδοσης Ιεραρχική εύρεση περιοχών οδηγεί σε μία συνάρτηση διάδοσης για όλο το CFG, και άμεση επίλυση του προβλήματος!

Απαραίτητες Έννοιες Για την ανάλυση με περιοχές χρειαζόμαστε κάποιες νέες έννοιες Κυριαρχία Διάταξη κόμβων του CFG Κατηγορίες ακμών του CFG Βρόχοι Κάποιες έννοιες τις έχουμε ήδη μελετήσει

Κυρίαρχοι (Dominators) Ο κόμβος d κυριαρχεί τον κόμβο n εάν κάθε μονοπάτι από τον κόμβο entry προς τον n περνάει από τον d συμβολικά: d dom n Παρατηρήσεις: Κάθε κόμβος κυριαρχεί τον εαυτό του Ο κόμβος entry κυριαρχεί κάθε κόμβο Συνήθεις περιπτώσεις: Ο κόμβος ελέγχου ενός βρόχου while κυριαρχεί όλους τους κόμβους του σώματος του βρόχου Ο κόμβος που τελειώνει με τον κώδικα ελέγχου μιας διακλάδωσης if-then-else κυριαρχεί τις ενότητες και των δύο κατευθύνσεων της διακλάδωσης

Παράδειγμα Κυριαρχίας 1 4 2 5 3 Stanford University

Δέντρο Κυριαρχίας Άμεση κυριαρχία: d idom n Αν d dom n, d n, και δεν υπάρχει κόμβος m τέτοιος ώστε d dom m and m dom n Η σχέση άμεσης κυριαρχίας απεικονίζεται σε δέντρο: 4 1 5 2 3 4 1 5 2 Stanford University 3

Εύρεση Κυριάρχων Η εύρεση κυριάρχων μπορεί να γίνει με τις μεθόδους ανάλυσης ροής δεδομένων που μελετήσαμε Πρόβλημα: Για κάθε κόμβο, υπολόγισε όλους τους κυριάρχους του Κατεύθυνση: προς τα εμπρός Πράξη σύγκλισης: τομή συνόλων Οριακές συνθήκες: OUT[Entry] = {Entry} Αρχικοποίηση: OUT[B] = όλοι οι κόμβοι Εξισώσεις: OUT[B] = IN[B] U {B} IN[B] = p άμεσος πρόγονος του B OUT[p]

Παράδειγμα Κυριαρχίας {1} 1 4 {1,4} 2 {1,2} 5 3 {1,2,3} {1,5} Stanford University

Αναζήτηση κατά Βάθος Άρχισε με τον κόμβο entry Αν έχεις άμεσο απόγονο που δεν τον έχεις ακόμα επισκεφτεί, επισκέψου τον Αλλιώς, επέστρεψε στον πατρικό σου κόμβο (από όπου ήρθες)

Επικαλύπτον Δέντρο Αναζήτησης κατά Βάθος (DFST) Ρίζα = entry Οι ακμές του DFST είναι οι ακμές που ακολουθούμε για να επισκεφτούμε τους κόμβους για πρώτη φορά 2 1 3 4 5 Stanford University

Διάταξη Κόμβων κατά Βάθος Η αντίστροφη της σειράς με την οποία μια αναζήτηση κατά βάθος επιστρέφει από τους κόμβους Ισοδύναμα, η αντίστροφη σειρά διαπέρασης μετα-διάταξης (post-order) του DFST

Παράδειγμα Διάταξης 1 4 2 5 3 Stanford University

Κατηγορίες Ακμών του CFG Ακμές προώθησης (advancing edges) είναι οι ακμές του CFG προς κάποιον απόγονο στο DFST Οι ακμές του DFST είναι ακμές προώθησης Ακμές επιστροφής (retreating edges) είναι ακμές του CFG προς κάποιον πρόγονο στο DFST, συμπεριλαμβανομένου του ίδιου Ακμές διασταύρωσης (cross edges) είναι ακμές μεταξύ δύο κόμβων του CFG χωρίς σχέση πρόγονου-απόγονου στο DFST

Παράδειγμα Ακμών 4 Επιστροφής 1 5 2 Διασταύρωσης 3 Προώθησης (επιπλέον των ακμών του δέντρου) Stanford University

Οπισθοακμές Μια ακμή του CFG είναι οπισθοακμή αν ο κόμβος κεφαλής της κυριαρχεί του κόμβου ουράς της Παρατήρηση: Κάθε οπισθοακμή είναι ακμή επιστροφής για κάθε DFST ο- ποιουδήποτε CFG Το αντίστροφο όμως δεν ισχύει πάντα!

Παράδειγμα Οπισθοακμών {1} 1 4 {1,4} 2 {1,2} 5 3 {1,2,3} {1,5} Stanford University

Ελαττώμενοι CFGs Ένας CFG είναι ελαττώμενος (reducible) εάν κάθε ακμή επιστροφής σε κάθε DFST αυτού του CFG είναι οπισθοακμή Για να ελέγξουμε αν ένας CFG είναι ελαττώμενος, απομακρύνουμε τις οπισθοακμές του και ελέγχουμε αν το αποτέλεσμα είναι μη κυκλικό κατευθυνόμενο γράφημα

Παράδειγμα Ελέγχου Ελάττωσης 1 4 2 5 3 Stanford University

Παράδειγμα Ελέγχου Ελάττωσης 1 4 2 5 3 Μη κυκλικό κατευθυνόμενο γράφημα

Ποιοι CFGs Είναι Ελαττώμενοι; Απάντηση: Οι περισσότεροι CFGs είναι ελαττώμενοι Ειδικότερα: Δομημένος προγραμματισμός με while-loops, for-loops, repeat-loops, ifthen(-else), break και continue οδηγεί σε ελαττώμενους CFGs

Παράδειγμα μη Ελαττώμενου CFG A B C B A Σε οποιοδήποτε DFST, μια από τις δύο αυτές ακμές θα είναι ακμή επιστροφής C A C B

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

Παράδειγμα με Ορισμούς Χρήσεων Έστω ότι επισκεπτόμαστε τους κόμβους σε διάταξη αναζήτησης κατά βάθος Η πληροφορία ότι ένας ορισμός d φτάνει σε κάποια ενότητα διαδίδεται σε ένα πέρασμα όσο ακολουθείται η διάταξη των κόμβων Όταν ο ορισμός d φτάνει σε μια ακμή επιστροφής, δε μπορεί να διαδώσει την πληροφορία από το σύνολο OUT στο IN Άρα απαιτείται επόμενο πέρασμα

Παράδειγμα με Ορισμούς Χρήσεων d 4 d d 1 d d 5 d d 2 d d 3 d Stanford University Έστω ότι υπάρχει ορισμός της μεταβλητής d στον κόμβο 2

Βάθος Γράφου Ροής Ελέγχου Ονομάζουμε βάθος (depth) ενός CFG το μέγιστο πλήθος ακμών επιστροφής σε ο- ποιοδήποτε μη κυκλικό μονοπάτι του CFG Για το παράδειγμα των ορισμών χρήσεων, εάν χρησιμοποιήσουμε διάταξη αναζήτησης κατά βάθος, η σύγκλιση του αλγόριθμου επιτυγχάνεται σε depth+2 περάσματα depth+1 περάσματα για τις ακμές επιστροφής 1 τελευταίο πέρασμα για έλεγχο σύγκλισης

Παράδειγμα: Βάθος = 2 1 -> 4 ->7 - - -> 3 -> 10 ->17 - - -> 6 -> 18 -> 20 επιστροφή επιστροφή προώθηση προώθηση προώθηση

Όμοια Οι διαθέσιμες εκφράσεις υπολογίζονται επίσης σε depth+2 περάσματα Η μη διαθεσιμότητα διαδίδεται σε αύξουσα διάταξη κόμβων σε ένα πέρασμα Οι ζωντανές μεταβλητές υπολογίζονται σε depth+2 περάσματα, σε σειρά αντίστροφη της διάταξης κατά βάθος Μια χρήση διαδίδεται προς τα πίσω σε φθίνουσα διάταξη κόμβων σε ένα πέρασμα

Γενικά Το άνω φράγμα depth+2 περασμάτων ισχύει για μονότονα πλαίσια, όσο η πληροφορία αρκεί να διαδίδεται σε μη κυκλικά μονοπάτια Παράδειγμα: ένας ορισμός φτάνει σε ένα σημείο προγράμματος κατά μήκος μη κυκλικών μονοπατιών

Όμως Η διάδοση σταθεράς δεν έχει την ιδιότητα της επιμεριστικότητας και άρα δεν είναι σίγουρα μονότονη L: a = b b = c c = 1 goto L a = b b = c c = 1

Πόσο Καλό Είναι το Φράγμα depth+2; Οι συνήθεις προγραμματιστικές δομές παράγουν ελαττώμενους γράφους ροής με πλήθος οπισθοακμών το πολύ ίσο με το μέγιστο βάθος φωλιάσματος βρόχων Το βάθος φωλιάσματος τις περισσότερες φορές δεν είναι μεγάλο Μια (παλιά) μελέτη του Knuth έχει δείξει ότι το μέσο βάθος τυπικών γράφων ροής είναι ~2.75.

Παράδειγμα Φωλιάσματος Βρόχων βάθος φωλιάσματος = 3 βάθος CFG = 3 βάθος φωλιάσματος = 3 βάθος CFG = 1 Stanford University

Φυσικοί Βρόχοι Ορίζουμε φυσικό βρόχο (natural loop) ένα βρόχο με: Μοναδικό κόμβο εισόδου (header) Ο κόμβος εισόδου κυριαρχεί όλους τους κόμβους του βρόχου Μια οπισθοακμή προς τον κόμβο εισόδου

Εύρεση Φυσικών Βρόχων Ο φυσικός βρόχος μιας οπισθοακμής a b είναι το σύνολο {b} και όλοι οι κόμβοι που οδηγούν στον κόμβο a χωρίς να περνάνε από τον b Μέθοδος: Αφαίρεσε τον b από τον CFG και βρες όλους τους προγόνους του a

Παράδειγμα Φυσικών Βρόχων φυσικός βρόχος ακμής 5 -> 1 4 1 5 2 3 φυσικός βρόχος ακμής 3 -> 2 Stanford University

Σχέσεις Μεταξύ Βρόχων Εάν δύο βρόχοι δεν έχουν κοινό κόμβο εισόδου Είτε είναι ασύνδετοι μεταξύ τους Είτε ο ένας περιέχεται (είναι φωλιασμένος) στον άλλο ο πιο εσωτερικός βρόχος: αυτός που δεν περιέχει άλλο βρόχο Εάν δύο βρόχοι έχουν κοινό κόμβο εισόδου Δεν διακρίνεται σχέση φωλιάσματος Οπότε θεωρούνται ένας βρόχος 1 Παράδειγμα: 2 3 4

Περιοχές (Regions) Ένα σύνολο κόμβων N και ακμών E είναι περιοχή (region) εάν: 1.Υπάρχει ένας κόμβος επικεφαλίδα h στο N που κυριαρχεί όλους τους κόμβους του N 2.Εάν n h N, τότε όλοι οι άμεσοι πρόγονοι του n βρίσκονται επίσης στο N 3.Το E περιλαμβάνει όλες τις ακμές μεταξύ των κόμβων του Ν, πιθανά χωρίς τις ακμές προς τον κόμβο h

Ελάττωση T1-T2 (Hecht & Ullman) Ένας ελαττώμενος CFG μπορεί να ελαττωθεί με τη βοήθεια δύο μετασχηματισμών δημιουργίας περιοχών: T1: Απαλοιφή βρόχου T2: Συγχώνευση δύο κόμβων n και m τέτοιων ώστε ο μόνος άμεσος πρόγονος του m είναι ο n, και ο m δεν είναι η επικεφαλίδα Ένας μη ελαττώμενος CFG μπορεί να ελαττωθεί με κατάλληλη μετατροπή

Παράδειγμα Ελάττωσης T2 1 4 2 5 3 T2 Stanford University

Παράδειγμα Ελάττωσης 14 23 T1 5 Stanford University

Παράδειγμα Ελάττωσης 14 T2 23 5 Stanford University

Παράδειγμα Ελάττωσης 1234 T2 5 Stanford University

Παράδειγμα Ελάττωσης 12345 T1 Stanford University

Παράδειγμα Ελάττωσης 12345 Stanford University

Οι Περιοχές που Προέκυψαν 1 4 2 3 5 Stanford University

Ανάλυση Ροής Δεδομένων Στην επαναληπτική ανάλυση Ορίζουμε τη συνάρτηση διάδοσης F B ώστε να απεικονίζει την επίδραση από την αρχή μέχρι το τέλος της ενότητας Β Στην ανάλυση με περιοχές Ορίζουμε τη συνάρτηση διάδοσης F R,B ώστε να απεικονίζει την επίδραση από την αρχή της περιοχής R μέχρι το τέλος της ενότητας Β Ελαττώνουμε κατασκευάζοντας μεγαλύτερες περιοχές και νέες συναρτήσεις διάδοσης από τις συναρτήσεις διάδοσης των φωλιασμένων περιοχών Όταν φτάσουμε στην περιοχή P του συνολικού CFG με v τις αρχικές τιμές του κόμβου entry, τότε: Out[B] = F P,B (v) In[b] = Β άμεσος πρόγονος του Β Οut[B ]

Ορισμοί για Συναρτήσεις Διάδοσης Παράδειγμα: Ορισμοί Χρήσεων F(x) = Gen (x - Kill) Σύνθεση: [F1 F2](x) = F2(F1(x)) = Gen2 (F1(x) - Kill2) = = Gen2 ((Gen1 (x - Kill1)) - Kill2) = = Gen2 (Gen1 - Kill2) (x - (Kill1 Kill2)) Πράξη σύγκλισης (meet): [F1 F2](x) = F1(x) F2(x) = = Gen1 (x - Kill1) Gen2 (x - Kill2) = = (Gen1 Gen2) (x - (Kill1 Kill2)) Κλείσιμο (closure): [F * ](x) = n F n (x) = I F(x) F(F(x)) = = x (Gen (x - Kill)) (Gen ((Gen (x - Kill)) - Kill)) = = x (Gen - )

Υπολογισμός Συναρτήσεων Διάδοσης Πρώτα υπολόγισε τις συναρτήσεις διάδοσης για κάθε περιοχή, από μέσα προς τα έξω: 1. Για κάθε περιοχή R και υποπεριοχή της S: f R,IN[S] = MOP από την επικεφαλίδα της R μέχρι την επικεφαλίδα της S, για μονοπάτια εντός της R 2. Για κάθε περιοχή R με ενότητα εξόδου B (δηλαδή ενότητα με άμεσο απόγονο εκτός της R), f R,OUT[B] = ΜΟΡ εντός της R από την επικεφαλίδα της R μέχρι το τέλος της B

Παράδειγμα Συναρτήσεων Διάδοσης f R,OUT[4] = f 1 f 4 f R,IN[S] = f 1 (f 2 f 3 )* R S 1 4 2 3 5 f R,OUT[2] = f 1 f 2 (f 3 f 2 )* f S,OUT[2] = f 2 (f 3 f 2 )* Stanford University

Παράδειγμα Πράξεων Σύγκλισης f R,OUT[4] = f 1 f 4 T R 1 4 2 3 5 f T,IN[5] = f 1 f 4 f 1 f 2 (f 3 f 2 )* f R,OUT[2] = f 1 f 2 (f 3 f 2 )* Stanford University

Επίλυση για Κάθε Κόμβο Τέλος, έχοντας υπολογίσει τη συνάρτηση f R,IN[R] όπου R είναι τώρα όλος ο CFG και R = R + {entry}, δούλεψε από έξω προς τα μέσα ώστε να υπολογίσεις τις τιμές IN[h], για την επικεφαλίδα h κάθε υποπεριοχής Εφόσον κάθε κόμβος είναι επικεφαλίδα κάποιας περιοχής, έχουμε όλες τις τιμές IN, από τις οποίες μπορούμε να υπολογίσουμε τις τιμές OUT

Ολοκλήρωση Παραδείγματος R IN[1] = f R,IN[R] (v ENTRY ) T U IN[2] = S 1 4 2 3 5 IN[3] = f S,IN[3] (IN[2]) f U,IN[S] (IN[1]) Stanford University

Άλλο Παράδειγμα CMU

Σύγκριση Μεθόδων Εφαρμογή Το κλείσιμο F* ισχυροποιεί τις περιοχές Οι περιοχές δύσκολα εφαρμόζονται προς τα πίσω Ο αντίστροφος CFG είναι συνήθως μη ελαττώμενος Περιοχές για διασυναρτησιακές βελτιστοποιήσεις Επαναληπτικοί αλγόριθμοι για μη ελαττώμενο CFG Ταχύτητα Κύκλοι στον CFG με μονοτονία στη διάδοση: (depth + 2) περάσματα στους επαναληπτικούς αλγόριθμους O(m log n) στη μέθοδο περιοχών Κύκλοι στον CFG χωρίς μονοτονία στη διάδοση: Οι επαναληπτικοί αλγόριθμοι συγκλίνουν πιο αργά Η μέθοδος περιοχών έχει την ίδια πολυπλοκότητα