Relational Representation of Python Abstract Syntax Trees

Πτυχιακή Εργασία uoadl:2884402 249 Αναγνώσεις

Μονάδα:
Τμήμα Πληροφορικής & Τηλεπικοινωνιών
Πληροφορική
Ημερομηνία κατάθεσης:
2019-10-31
Έτος εκπόνησης:
2019
Συγγραφέας:
ΚΑΡΥΣΤΙΝΟΣ ΑΥΓΕΡΑΝΤΩΝΗΣ ΝΙΚΟΛΑΟΣ
Στοιχεία επιβλεπόντων καθηγητών:
Σμαραγδάκης Γιάννης, Καθηγητής, Τμήμα Πληροφορικής και Τηλεπικοινωνιών, Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών
Πρωτότυπος Τίτλος:
Relational Representation of Python Abstract Syntax Trees
Γλώσσες εργασίας:
Αγγλικά
Ελληνικά
Μεταφρασμένος τίτλος:
Σχεσιακή Αναπαράσταση Αφηρημένων Συντακτικών Δένδρων της Python
Περίληψη:
Η γλώσσα προγραμματισμού Python, χρησιμοποιείται ευρέως σε πολλούς τομείς όπως επιστήμη δεδομένων, ανάπτυξη εφαρμογών διαδικτύου, μηχανική μάθηση κ.α. Αυτό, κάνει την Python ελκυστικό στόχο για διάφορες στατικές αναλύσεις οι οποίες στοχεύουν να βελτιστοποιήσουν το πρόγραμμα ή, ακόμα σημαντικότερα, να ανακαλύψουν λάθη και κενά ασφαλείας. Γενικά, η στατική ανάλυση βιομηχανικών εφαρμογών γραμμένων σε οποιαδήποτε γλώσσα κρίνεται απαραίτητη ως μέσο βελτίωσης και διατήρησης της ποιότητας όλο και πιο προηγμένου και πολύπλοκου λογισμικού.

Παραγωγή γεγονότων είναι η αναπαράσταση ενός προγράμματος ως μια βάση δεδομένων που περιέχει γεγονότα, σύμφωνα με κάποιο ορισμένο εκ των προτέρων σχήμα (σχεσιακή αναπαράσταση). Η παραγωγή γεγονότων, είναι ένα σημαντικό πρώτο βήμα σε πολλές στατικές αναλύσεις, και ιδιαίτερα σε δηλωτικές στατικές αναλύσεις, όπως αυτές που υποστηρίζονται από το Doop framework για στατική ανάλυση, το οποίο αξιοποιεί την γλώσσα Datalog και βάσεις γεγονότων για να εκτελέσει τις αναλύσεις του. Η βάση γεγονότων, μετά την δημιουργία της, επιτρέπει τον προσδιορισμό μιας στατικής ανάλυσης προγράμματος ως ένα σύνολο από (πιθανώς αναδρομικές) επερωτήσεις.

Σε αυτή την πτυχιακή εργασία, δίνουμε ένα τρόπο μετατροπής του AST ενός προγράμματος Python σε ένα ισοδύναμο σύνολο από αρχεία γεγονότων τα οποία αποτελούν μια βάση γεγονότων. Αυτό ταυτόχρονα θεμελιώνει ένα βασικό framework, πάνω στο οποίο μπορούν να αναπτυχθούν πιο περίπλοκες παραγωγές γεγονότων ή μετασχηματισμοί. Η δουλειά που παρουσιάζεται, ελπίζουμε να αποτελέσει βάση πάνω στην οποία θα υλοποιηθούν διάφορες στατικές αναλύσεις ή μετασχηματισμοί προγραμμάτων Python, στο επίπεδο του AST.
Κύρια θεματική κατηγορία:
Τεχνολογία – Πληροφορική
Λέξεις-κλειδιά:
στατική ανάλυση προγραμμάτων, μετασχηματισμός προγραμμάτων, Doop framework, Python, συντακτικά δένδρα, παραγωγή γεγονότων
Ευρετήριο:
Ναι
Αρ. σελίδων ευρετηρίου:
5
Εικονογραφημένη:
Ναι
Αρ. βιβλιογραφικών αναφορών:
8
Αριθμός σελίδων:
43