Grigorios Ntousakis, "Coarse-Grained dynamic analysis of software libraries", Diploma Work, School of Electrical and Computer Engineering, Technical University of Crete, Chania, Greece, 2020
https://doi.org/10.26233/heallink.tuc.87056
H δυναμική ανάλυση προγραμμάτων είναι μία ευρέως διαδεδομένη τεχνική που χρησιμοποιείται για την εύρεση πληροφοριών σχετικά με την εκτέλεση του προγράμματος. Σε αυτή την διπλωματική εργασία παρουσιάζεται μία νέα μορφή δυναμικής ανάλυσης που στοχεύει σε σύγχρονες δυναμικές γλώσσες προγραμματισμού, όπως η Python, η Lua και η Javascript. Αυτή η μορφή αξιοποιείτις δυνατότητες του συστήματος εισαγωγής βιβλιοθηκών και, πιο συγκεκριμένα, το γεγονός ότι οι βιβλιοθήκες εισάγονται με μορφή κειμένου. Στον πυρήνα της, πραγματοποιεί αποσύνθεση, μετασχηματισμό και ανασύνθεση των βιβλιοθηκών, διατηρώντας την αρχική τους λειτουργικότητα. Κατά τον μετασχηματισμό εισάγει κώδικα κατασκευασμένο από τον χρήστη, ειδικό για την εκάστοτε ανάλυση, στον πηγαίο κώδικα της βιβλιοθήκης. Αυτός ο κώδικας σε συνδυασμό με διάφορα πε-ριτυλίγματα, και τον μηχανισμό παρεμβολής των γλωσσών δίνει την δυνατότητα να αναλύονται οι αλληλεπιδράσεις του προγράμματος σε επίπεδο βιβλιοθήκης χωρίς να απαιτείται μορφοποίηση του περιβάλλοντος εκτέλεσης. Αυτές οι δυνατότητες επιδεικνύονται με την χρήση της Lya, ενός συστήματος γραμμένου στην Javascript, που στοχεύει να πραγματοποιήσει δυναμική ανάλυση για την ίδια την Javascript. Τα αποτελέσματα δείχνουν ότι η Lya προσφέρει 2–3 τάξεις μεγέθους ταχύτερες αναλύσεις, σε σύγκριση με σύγχρονα συστήματα δυναμικής ανάλυσης. Δίνεται η δυνατότητα στις αναλύσεις να τρέχουν κατά την διάρκεια της παραγωγής, ανιχνεύοντας προβλήματα και συμπεριφορές μοναδικές κάτω από αυτές τις συνθήκες. Οι αναλύσεις προσφέρουν πληθώρα διαφορετικών περιπτώσεων χρήσης και γράφονται σε 100 γραμμές κώδικα κατά μέσο όρο.