The role of exceptions in static program analysis for Java (Η σημασία των εξαιρέσεων στην Στατική Ανάλυση Προγραμμάτων Java)

Διπλωματική Εργασία uoadl:1321449 397 Αναγνώσεις

Μονάδα:
Κατεύθυνση / ειδίκευση Διαχείριση Πληροφορίας και Δεδομένων (ΔΕΔ)
Βιβλιοθήκη Σχολής Θετικών Επιστημών
Ημερομηνία κατάθεσης:
2012-07-11
Έτος εκπόνησης:
2012
Συγγραφέας:
Καστρίνης Γιώργος
Στοιχεία επιβλεπόντων καθηγητών:
Σμαραγδάκης Γιάννης Αναπλ. Καθηγητής ΕΚΠΑ
Πρωτότυπος Τίτλος:
The role of exceptions in static program analysis for Java (Η σημασία των εξαιρέσεων στην Στατική Ανάλυση Προγραμμάτων Java)
Γλώσσες εργασίας:
Αγγλικά
Περίληψη:
Η στατική ανάλυση προγραμμάτων αποτελεί ένα είδος ανάλυσης λογισμικού, που
ασχολείται
με την εξέταση του πηγαίου κώδικα χωρίς να εκτελείται το παραγόμενο πρόγραμμα.
Μια σημαν-
τική κατηγορία στατικής ανάλυσης είναι η ανάλυση δεικτών, η οποία εκτιμά σε
ποιά αντικείμενα
μπορεί να ‘δείξει’ κάθε μεταβλητή του προγράμματος για κάθε πιθανή εκτέλεση του
κώδικα. Τα
αποτελέσματα αυτά αποτελούν θεμελιώδες στάδιο για περαιτέρω πιο σύνθετες
αναλύσεις.
Για να είναι μια τέτοια ανάλυση ακριβής, πρέπει να προσομοιώνει κάθε πτυχή του
προγράμματος
καθώς και του συστήματος στο οποίο θα εκτελεστεί ο κώδικας, και που επηρεάζουν
την ροή των
αντικειμένων στις μεταβλητές του προγράμματος. Από την άλλη για να είναι μια
τέτοια ανάλυση
πρακτική χρειάζεται να παράγει αποτελέσματα σε λογικό χρονικό διάστημα. Σαν
αποτέλεσμα
είναι αρκετά κρίσιμο οι υπερεκτιμήσεις που γίνονται να είναι όσο το δυνατόν πιο
‘σφικτές’.
Ενα σημαντικό χαρακτηριστικό των αντικειμενοστρεφών γλωσσών όπως η Java είναι
οι εξ- αιρέσεις. Προηγούμενες μελέτες έδειξαν ότι ο ακριβής χειρισμός των
εξαιρέσεων επηρεάζει
σημαντικά την ακρίβεια των αποτελεσμάτων. Παρουσιάζουμε στην εργασία αυτή τρεις
εναλλακ-
τικές για το χειρισμό των εξαιρέσεων καθώς και τις επιπτώσεις που έχουν στην
ακρίβεια και στην
απόδοση της ανάλυσης. Ε να εντυπωσιακό εύρημα αποτελεί το γεγονός ότι αντί να
καταγράφεται
κάθε αντικείμενο-εξαίρεση, μπορούν τα αντικείμενα με τον ίδιο τύπο να
συγχωνευτούν σε ένα
αντικείμενο-αντιπρόσωπο. Κάτι τέτοιο επιφέρει ελάχιστη αλλαγή στην ακρίβεια,
αλλά σημαντική
βελτίωση στην απόδοση (σε αρκετές αναλύσεις πάνω από 20% βελτίωση).
Λέξεις-κλειδιά:
Datalog, Ανάλυση πλήρους προγράμματος, Java, Εξαιρέσεις, Συμφραζόμενα
Ευρετήριο:
Όχι
Αρ. σελίδων ευρετηρίου:
0
Εικονογραφημένη:
Ναι
Αρ. βιβλιογραφικών αναφορών:
22
Αριθμός σελίδων:
54