Un dataset per il rivelamento di errori nei programmi

Castricini, Luca (2021) Un dataset per il rivelamento di errori nei programmi. [Laurea], Università di Bologna, Corso di Studio in Informatica [L-DM270], Documento full-text non disponibile
Il full-text non è disponibile per scelta dell'autore. (Contatta l'autore)

Abstract

L'obiettivo di questo progetto, è quello di creare un dataset composto da funzioni utile per rilevare vari errori nei programmi. Per comprendere i vari passaggi del lavoro, vengono prima spiegati velocemente alcuni argomenti come il Machine Learning, le reti neurali e alcune rappresentazioni possibili del codice sorgente. Per realizzare la tesi è stato utilizzato il linguaggo di programmazione Python e i tool Clang e Infercode. Il primo è un compilatore front-end per i linguaggi di programmazione C e C++ mentre, il secondo è un tool per rappresentare il codice sorgente in vettori. Come base di lavoro è stato utilizzato un dataset costituito da progetti GitHub contenenti il codice sorgente, scritto nei languaggi di programmazione C e C++, e la loro analisi statica, ottenuta tramite l'analizzatore statico Infer. Per costruire il dataset di funzioni è stato realizzato uno script, scritto in Python, che grazie all'utilizzo di Clang ha permesso di fare il parsing di tutti i file C presenti nel dataset in un albero sintattico astratto (AST), e successivamente di estrarre tutte le funzioni dei file dai nodi degli alberi corrispondenti. Oltre alle funzioni sono stati raccolti anche i bug presenti nell'analisi statica dei progetti, che sono poi stati inseriti in un file CSV. Una volta ottenuto il dataset di funzioni, è stato creato anche un dataset di vettori composto dalle rappresentazioni vettoriali di tutte le funzioni raccolte precedentemente. Infine, sono stati descritti alcuni lavori correlati a questo dove è stato fatto un confronto e sono stati mostrati dei possibili utilizzi per i dataset creati. In conclusione, sono stati creati due dataset e un file CSV contenenti più di 500.000 elementi che, se interpretati in maniera corretta possono risultare una buona base per fare diversi tipi di ricerca.

Abstract
Tipologia del documento
Tesi di laurea (Laurea)
Autore della tesi
Castricini, Luca
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
Dataset,Python,Machine Learning,Neural Networks,Bug,Infercode,Deep Learning
Data di discussione della Tesi
15 Dicembre 2021
URI

Altri metadati

Gestione del documento: Visualizza il documento

^