Παρακαλώ χρησιμοποιήστε αυτό το αναγνωριστικό για να παραπέμψετε ή να δημιουργήσετε σύνδεσμο προς αυτό το τεκμήριο: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/18006
Τίτλος: Πρακτική Στατική Ανάλυση για Προγράμματα Python
Συγγραφείς: Σαλής, Βιτάλιος
Παπασπύρου Νικόλαος
Λέξεις κλειδιά: Γλώσσες προγραμματισμού
Python
Γράφοι κλήσεων συναρτήσεων
Ανίχνευση σφαλμάτων κλει­διού
Ημερομηνία έκδοσης: 28-Ιου-2021
Περίληψη: Η στατική ανάλυση προγραμμάτων ενέχει προκλήσεις, ειδικά στο πλαίσιο γλωσσών υψηλού επιπέδου, όπως η Python, η οποία είναι modular και ενσωματώνει δυναμικά χαρακτηριστικά και συναρτήσεις υψηλού επιπέδου. Προτείνουμε ένα επεκτάσιμο πλαίσιο για την στατική ανάλυση Python προγραμμάτων και έχουμε υλοποιήσει ένα αντίστοιχο πρωτότυπο. Το πρωτότυπο μας λειτουργεί μέσω του υπολογισμού όλων των σχέσεων ανάθεσης μεταξύ των αναγνωριστικών συναρτήσεων, μεταβλητών, κλάσεων, και modules μέσω μιας διασυναρτησιακής ανάλυσης χωρίς ευαισθησία περιβάλλοντος. Με βάση αυτές τις σχέσεις αναθέσεων, υλοποιούμε δύο επεκτάσεις της ανάλυσης μας: (1) παραγωγή γράφων κλήσεων συναρτήσεων και (2) ανίχνευση σφαλμάτων κλειδιού. Οι γράφοι κλήσεων συναρτήσεων είναι κατευθυνόμενοι γράφοι που επισημαίνουν σχέσεις κλήσεων μεταξύ υπορουτινών. Παίζουν σημαντικό ρόλο σε διάφορα πλαίσια, όπως την δημιουργία προφίλ κώδικα και την ανάλυση διάδοσης ευπαθειών. Έχουμε επεκτείνει την ανάλυση μας ώστε να παράγουμε γράφους κλήσεων συναρτήσεων και έχουμε αξιολογήσει την μέθοδο μας σε δύο σημεία αναφοράς: μια βιβλιοθήκη από Python προγράμματα μικρής εμβέλειας και μια βιβλιοθήκη από πραγματικά Python πακέτα μεγάλης εμβέλειας. Τα αποτελέσματα της αξιολόγησης δείχνουν πως η μέθοδός μας ξεπερνάει τις υπάρχουσες κορυφαίες μεθόδους για την Python σε ακρίβεια (99.2%) καθώς και σε ανάκληση (69.9%). Οι μη έγκυρες προσβάσεις σε πίνακες κατακερματισμού συμβαίνουν όταν ένας πίνακας διασχίζεται με ένα στοιχείο το οποίο δεν αντιστοιχεί σε κάποιο από τα κλειδιά του. Σε αυτή τη περίπτωση, η Python παράγει ένα σφάλμα κλειδιού και τερματίζει. Η ανίχνευση πιθανών σφαλμάτων κλειδιού μπορεί να είναι κρίσιμης σημασίας, ειδικά για εφαρμογές στην παραγωγή. Για να αντιμετωπίσουμε αυτά τα ρίσκα, έχουμε επεκτείνει την ανάλυση μας ώστε να μπορεί να ανιχνεύει μη έγκυρες προσβάσεις σε πίνακες κατακερματισμού, και την αξιολογούμε σε μια βιβλιοθήκη από μικρά Python προγράμματα και σε ένα σύνολο από υποβολές φοιτητών για ένα μεταπτυχιακό μάθημα που σχετίζεται με την ανάλυση δεδομένων. Τα αποτελέσματα μας υποδεικνύουν πως η μέθοδός μας μπορεί να ανιχνεύσει σφάλματα κλειδιού σε πολλές περιπτώσεις στην Python, ενώ μπορεί να βοηθήσει προγραμματιστές να βρουν πιθανά σφάλματα κλειδιού κατά την διάρκεια της συγγραφής κώδικα.
URI: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/18006
Εμφανίζεται στις συλλογές:Διπλωματικές Εργασίες - Theses

Αρχεία σε αυτό το τεκμήριο:
Αρχείο Περιγραφή ΜέγεθοςΜορφότυπος 
thesis.pdf541.6 kBAdobe PDFΕμφάνιση/Άνοιγμα


Όλα τα τεκμήρια του δικτυακού τόπου προστατεύονται από πνευματικά δικαιώματα.