magistrsko delo
Abstract
Statična analiza izvorne kode je pomemben del razvoja programske opreme, ki pa ima nekaj pomembnih pomanjkljivosti, ker z metrik programske kode ne moremo sklepati o semantični pravilnosti. Kot potencialno rešitev smo v magistrskem delu raziskali nevronsko mrežo Code2Vec. V teoretičnem delu smo obravnavali osnovne koncepte umetnih nevronskih mrež, tehnike redukcij dimenzionalnosti vektorjev in delovanje Code2Vec. V praktičnem delu smo izvedli eksperiment vizualizacije, klasifikacije in gručenja nad podatkovno množico, ki jo sestavljajo tako visoko-dimenzionalni vektorji kot tudi splošne značilnosti programske kode metod šestih odprtokodnih projektov. Glede na rezultate sklepamo, da so vektorji Code2Vec koristni za izvedbo statične analize kode.
Keywords
nevronske mreže;vektorizacija;izvorna koda;strojno učenje;magistrske naloge;
Data
Language: |
Slovenian |
Year of publishing: |
2020 |
Typology: |
2.09 - Master's Thesis |
Organization: |
UM FERI - Faculty of Electrical Engineering and Computer Science |
Publisher: |
[A. Miloševič] |
UDC: |
004.8:004.415.3(043.2) |
COBISS: |
23085334
|
Views: |
781 |
Downloads: |
182 |
Average score: |
0 (0 votes) |
Metadata: |
|
Other data
Secondary language: |
English |
Secondary title: |
Analysis of vectorized source code with machine learning |
Secondary abstract: |
Static software analysis as an integral part of software development has important flaws because it is impossible to discern the semantic structure and correctness of software from metrics alone. In this work, we have researched the neural network Code2Vec as a potential solution to this problem. In the theoretical segment, we have described the basics of neural networks, dimensionality reduction techniques and the inner workings of Code2Vec. In the practical segment, we have conducted a visualization, classification and clustering experiment using a dataset comprised of standard features as well as Code2Vec code embeddings of Java methods. We can conclude from the results of the experiment that Code2Vec embeddings are an appropriate tool for static code analysis. |
Secondary keywords: |
artificial neural networks;code embeding;source code;machine learning; |
Type (COBISS): |
Master's thesis/paper |
Thesis comment: |
Univ. v Mariboru, Fak. za elektrotehniko, računalništvo in informatiko, Informatika in tehnologije komuniciranja |
Pages: |
XI, 100 f. |
ID: |
11356732 |