dc.contributor.author | Σαλής, Βιτάλιος | el |
dc.contributor.author | Salis, Vitalios | en |
dc.date.accessioned | 2022-02-07T09:46:47Z | |
dc.date.available | 2022-02-07T09:46:47Z | |
dc.identifier.uri | https://dspace.lib.ntua.gr/xmlui/handle/123456789/54580 | |
dc.identifier.uri | http://dx.doi.org/10.26240/heal.ntua.22278 | |
dc.rights | Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 3.0 Ελλάδα | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-sa/3.0/gr/ | * |
dc.subject | Γλώσσες Προγραμματισμού | el |
dc.subject | Python | el |
dc.subject | Γράφοι κλήσεων συναρτήσεων | el |
dc.subject | Ανίχνευση σφαλμάτων κλειδιού | el |
dc.title | Προγράμματα Python | el |
dc.contributor.department | Εργαστήριο Τεχνολογίας Λογισμικού | el |
heal.type | bachelorThesis | |
heal.classification | Γλώσσες Προγραμματισμού | el |
heal.language | el | |
heal.language | en | |
heal.access | free | |
heal.recordProvider | ntua | el |
heal.publicationDate | 2021-06-28 | |
heal.abstract | Η στατική ανάλυση προγραμμάτων ενέχει προκλήσεις, ειδικά στο πλαίσιο γλωσσών υψηλού επιπέδου, όπως η Python, η οποία είναι modular και ενσωματώνει δυναμικά χαρακτηριστικά και συναρτήσεις υψηλού επιπέδου. Προτείνουμε ένα επεκτάσιμο πλαίσιο για την στατική ανάλυση Python προγραμμάτων και έχουμε υλοποιήσει ένα αντίστοιχο πρωτότυπο. Το πρωτότυπο μας λειτουργεί μέσω του υπολογισμού όλων των σχέσεων ανάθεσης μεταξύ των αναγνωριστικών συναρτήσεων, μεταβλητών, κλάσεων, και modules μέσω μιας διασυναρτησιακής ανάλυσης χωρίς ευαισθησία περιβάλλοντος. Με βάση αυτές τις σχέσεις αναθέσεων, υλοποιούμε δύο επεκτάσεις της ανάλυσης μας: (1) παραγωγή γράφων κλήσεων συναρτήσεων και (2) ανίχνευση σφαλμάτων κλειδιού. Οι γράφοι κλήσεων συναρτήσεων είναι κατευθυνόμενοι γράφοι που επισημαίνουν σχέσεις κλήσεων μεταξύ υπορουτινών. Παίζουν σημαντικό ρόλο σε διάφορα πλαίσια, όπως την δημιουργία προφίλ κώδικα και την ανάλυση διάδοσης ευπαθειών. Έχουμε επεκτείνει την ανάλυση μας ώστε να παράγουμε γράφους κλήσεων συναρτήσεων και έχουμε αξιολογήσει την μέθοδο μας σε δύο σημεία αναφοράς: μια βιβλιοθήκη από Python προγράμματα μικρής εμβέλειας και μια βιβλιοθήκη από πραγματικά Python πακέτα μεγάλης εμβέλειας. Τα αποτελέσματα της αξιολόγησης δείχνουν πως η μέθοδός μας ξεπερνάει τις υπάρχουσες κορυφαίες μεθόδους για την Python σε ακρίβεια (99.2%) καθώς και σε ανάκληση (69.9%). Οι μη έγκυρες προσβάσεις σε πίνακες κατακερματισμού συμβαίνουν όταν ένας πίνακας διασχίζεται με ένα στοιχείο το οποίο δεν αντιστοιχεί σε κάποιο από τα κλειδιά του. Σε αυτή τη περίπτωση, η Python παράγει ένα σφάλμα κλειδιού και τερματίζει. Η ανίχνευση πιθανών σφαλμάτων κλειδιού μπορεί να είναι κρίσιμης σημασίας, ειδικά για εφαρμογές στην παραγωγή. Για να αντιμετωπίσουμε αυτά τα ρίσκα, έχουμε επεκτείνει την ανάλυση μας ώστε να μπορεί να ανιχνεύει μη έγκυρες προσβάσεις σε πίνακες κατακερματισμού, και την αξιολογούμε σε μια βιβλιοθήκη από μικρά Python προγράμματα και σε ένα σύνολο από υποβολές φοιτητών για ένα μεταπτυχιακό μάθημα που σχετίζεται με την ανάλυση δεδομένων. Τα αποτελέσματα μας υποδεικνύουν πως η μέθοδός μας μπορεί να ανιχνεύσει σφάλματα κλειδιού σε πολλές περιπτώσεις στην Python, ενώ μπορεί να βοηθήσει προγραμματιστές να βρουν πιθανά σφάλματα κλειδιού κατά την διάρκεια της συγγραφής κώδικα. | el |
heal.advisorName | Παπασπύρου, Νικόλαος | el |
heal.committeeMemberName | Σαγώνας, Κωνσταντίνος | el |
heal.committeeMemberName | Γκούμας, Γεώργιος | el |
heal.academicPublisher | Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών. Εργαστήριο Τεχνολογίας Λογισμικού | el |
heal.academicPublisherID | ntua | |
heal.numberOfPages | 88 σ. | el |
heal.fullTextAvailability | false |
Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο: