The field of Artificial Intelligence (AI) has made significant advancements in recent years and has been applied to various domains including that of program comprehension. In this thesis, the main interest consists in devising AI approaches to deal with source code, in order to be able to extract knowledge from it. The featured work is developed along two main research lines, namely (1) the automatic recognition of particular source code properties which can range from the presence of particular syntactic patterns or constructs to higher level features such as the functional purpose of code snippets, and (2) the study of how existing neural models trained in different source code-related tasks make their predictions. In this case, the main goal is to investigate which elements are mostly involved in the decision process of a network. The carried out work allowed to obtain insightful research outcomes, including the design of a source code embedding able to capture specific properties, a thorough analysis of the internal dynamics of neural networks trained on source code, the investigation of the decision process of state of the art neural transformers in terms of identification of which source code features, or high-level concepts, are more relevant to make a prediction, and the definition of a method to synthesise adversarial instances able to deceive a network.

L'intelligenza artificiale ha avuto un grande sviluppo negli ultimi anni, ed è stata applicata a vari domini, tra cui quello della program comprehension. L'obiettivo principale di questa tesi è quello di sviluppare approcci basati sull'intelligenza artificiale che operino su codice sorgente, in modo da poterne estrarre conoscenza. Il lavoro si sviluppa su due principali linee, ovvero (1) il riconoscimento automatico di particolari proprietà che possono spaziare dalla presenza di specifici pattern sintattici a caratteristiche più di alto livello, come l'obiettivo funzionale di frammenti di codice, e (2) lo studio di come modelli neurali esistenti addestrati per differenti scopi fanno le loro predizioni. In questo caso, l'obiettivo principale è quello di analizzare quali elementi sono più coinvolti nel processo di decisione della rete. Il lavoro sviluppato ha permesso di ottenere risultati promettenti, tra cui lo sviluppo di un embedding per codice sorgente capace di cogliere diverse proprietà, una profonda analisi delle dinamiche interne di reti neurali addestrate su codice sorgente, lo studio del processo di decisione di moderni transformer in termini di identificazione di caratteristiche, o concetti ad alto livello, sono più importanti per la predizione, e la definizione di un metodo per sintetizzare istanze adversarial per ingannare una rete neurale.

(2023). Artificial intelligence for program comprehension: disclosing neural models trained on source code. (Tesi di dottorato, Università degli Studi di Milano-Bicocca, 2023).

Artificial intelligence for program comprehension: disclosing neural models trained on source code

SALETTA, MARTINA
2023

Abstract

The field of Artificial Intelligence (AI) has made significant advancements in recent years and has been applied to various domains including that of program comprehension. In this thesis, the main interest consists in devising AI approaches to deal with source code, in order to be able to extract knowledge from it. The featured work is developed along two main research lines, namely (1) the automatic recognition of particular source code properties which can range from the presence of particular syntactic patterns or constructs to higher level features such as the functional purpose of code snippets, and (2) the study of how existing neural models trained in different source code-related tasks make their predictions. In this case, the main goal is to investigate which elements are mostly involved in the decision process of a network. The carried out work allowed to obtain insightful research outcomes, including the design of a source code embedding able to capture specific properties, a thorough analysis of the internal dynamics of neural networks trained on source code, the investigation of the decision process of state of the art neural transformers in terms of identification of which source code features, or high-level concepts, are more relevant to make a prediction, and the definition of a method to synthesise adversarial instances able to deceive a network.
MARIANI, LEONARDO
FERRETTI, CLAUDIO
prog. comprehension; AI; reti neurali; evolutionary comp.; codice sorgente
prog. comprehension; AI; neural networks; evolutionary comput.; source code
INF/01 - INFORMATICA
English
3-mag-2023
35
2021/2022
open
(2023). Artificial intelligence for program comprehension: disclosing neural models trained on source code. (Tesi di dottorato, Università degli Studi di Milano-Bicocca, 2023).
File in questo prodotto:
File Dimensione Formato  
phd_unimib_736106.pdf

accesso aperto

Descrizione: Artificial Intelligence for Program Comprehension: Disclosing Neural Models Trained on Source Code
Tipologia di allegato: Doctoral thesis
Dimensione 4.32 MB
Formato Adobe PDF
4.32 MB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10281/415137
Citazioni
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
Social impact