Abstract : | Η έλευση στο προσκήνιο του μεγάλου όγκου πληροφορίας που προσφέρει το φαινόμενο του “Μεγάλου Κώδικα”, και του τρόπου με τον οποίο αυτή μπορεί να αξιοποιηθεί για την εξαγωγή συμπερασμάτων σύμφωνα με την υπόθεση της “Φυσικότητας”, έφεραν μία έκρηξη στον τομέα της έρευνας που ασχολείται με την χρήση τεχνικών μηχανικής μάθησης για την στατική ανάλυση του πηγαίου κώδικα. Στόχος της παρούσας μεταπτυχιακής διπλωματικής εργασίας είναι η συγκέντρωση δημοσιεύσεων σχετικών με τον τομέα, η περιγραφή τους, και ανάλυση τους για την απάντηση ερευνητικών ερωτημάτων. Αρχικά, παρουσιάζονται οι τρεις κατηγορίες πιθανοτικών μοντέλων κώδικα: τα μοντέλα παραγωγής κώδικα, τα αναπαραστατικά μοντέλα κώδικα και τα μοντέλα εξόρυξης μοτίβων. Για κάθε κατηγορία, αφού αναλυθεί, παρουσιάζεται η σχετική βιβλιογραφική έρευνα με έμφαση στην τεχνική μηχανικής μάθησης που χρησιμοποιείται, στον τρόπο αναπαράστασης του κώδικα και τα τελικά αποτελέσματα των δοκιμών που πραγματοποιήθηκαν. Στη συνέχεια, επεξηγείται το πρόβλημα της εξαγωγής τύπων και παρατίθενται οι διαστάσεις του προβλήματος, όπως αυτές προκύπτουν από την αντίστοιχη έρευνα. Έπειτα, η σχετική έρευνα περιγράφεται με παρόμοιο τρόπο με πριν, δίνοντας έμφαση στα ίδια σημεία. Επιπλέον, οι δημοσιεύσεις για το συγκεκριμένο πρόβλημα σχολιάζονται και κρίνονται σύμφωνα με τις διαστάσεις του. Τέλος, τίθεται ένας αριθμός από συγκεκριμένα ερευνητικά ερωτήματα, τα οποία σχετίζονται με τις κατηγορίες πιθανοτικών μοντέλων, τις μεθόδους μηχανικής μάθησης που χρησιμοποιούνται, τα πεδία προβλήματος για τα οποία γίνεται προσπάθεια ώστε να επιλυθούν, τις γλώσσες προγραμματισμού επάνω στις οποίες έχουν δοκιμαστεί τα προβλήματα και οι μέθοδοι και το αν οι υλοποιήσεις προσφέρονται ως έργα ανοικτού λογισμικού. Μέσα από την ανάλυση της έρευνας που έχει παρουσιαστεί, προκύπτουν οι τελικές απαντήσεις στα ερωτήματα που έχουν τεθεί. The great volume of information that came forth because of the "Big Code" phenomenon, and the way this information can be harnessed in order to draw conclusions based on the "Naturalness" hypothesis, brought with them a rise in the research field that tries to use machine learning techniques for source code static analysis. The goal of this postgraduate thesis is to gather the research papers that contribute in the field, describe them, and analyze them in order to answer certain research questions.To begin, with the three categories of probabilistic models of code are being presented: code generating models, representational models of code and pattern mining models. For each category, after it is done being analyzed, is presented its corresponding research with emphasis given in the machine learning technique that is being used, the way the code is being represented, and the end test results. Then, the problem of type inference is being explained and the problem's dimensions are being given, as a result of the corresponding research. After that, the research is being described in similar fashion as before, with emphasis given at the same points. Moreover, the research papers for this problem are being commented and criticized upon its dimensions. Lastly, a certain number of research questions is being set, that deals with the categories of probabilistic models, the machine learning techniques that are being used, the problem fields that are tried to be solved, the programming languages on which the problems and the methods have been tested upon and if the implementations are being offered as open source projects. Through the analysis of the research that has been presented thus far, the final answers to the questions that have been set is given.
|
---|