Multimodal Side-Tuning for Code Snippets Programming Language Recognition

Visaggi, Salvatore (2021) Multimodal Side-Tuning for Code Snippets Programming Language Recognition. [Laurea magistrale], Università di Bologna, Corso di Studio in Informatica [LM-DM270]
Documenti full-text disponibili:
[img] Documento PDF (Thesis)
Disponibile con Licenza: Creative Commons: Attribuzione - Condividi allo stesso modo 4.0 (CC BY-SA 4.0)

Download (2MB)

Abstract

Identificare in modo automatico il linguaggio di programmazione di una porzione di codice sorgente è uno dei temi che ancora oggi presenta diverse difficoltà. Il numero di linguaggi di programmazione, la quantità di codice pubblicato e reso open source, e il numero di sviluppatori che producono e pubblicano nuovo codice sorgente è in continuo aumento. Le motivazioni che richiedono la necessità di disporre di strumenti in grado di riconoscere il tipo di linguaggio per snippet di codice sorgente sono svariate. Ad esempio, tali strumenti trovano applicazione in ambiati quali: la ricerca di codice sorgente; la ricerca di possibili vulnerabilità nel codice; la syntax highlighting; o semplicemente per comprendere il contenuto di progetti software. Nasce così l'esigenza di disporre di dataset di snippet di codice allineati in modo adeguato con il linguaggio di programmazione. StackOverflow, una piattaforma di condivisione di conoscenza tra sviluppatori, offre la possibilità di avere accesso a centinaia di migliaia di snippet di codice sorgente scritti nei linguaggi più usati dagli sviluppatori, rendendolo il luogo ideale da cui estrarre snippet per la risoluzione del task proposto. Nel lavoro svolto si è dedicata molta attenzione a tale problematica, iterando sull'approccio scelto al fine di ottenere una metodologia che ha permesso l'estrazione di un dataset adeguato. Al fine di risolvere il task dell'identificazione del linguaggio per gli snippet estratti da StackOverflow, nel lavoro svolto si fa uso di un approccio multimodale (considerando rappresentazioni testuali e di immagini degli snippet), prendendo in esame la tecnica innovativa di side-tuning (basata sull'adattamento incrementale di una rete neurale pre-addestrata). I risultati ottenuti sono confrontabili con lo stato dell'arte e in alcuni casi migliori, in considerazione della difficoltà del task affrontato nel caso di snippet di codice sorgente che presentano poche linee di codice.

Abstract
Tipologia del documento
Tesi di laurea (Laurea magistrale)
Autore della tesi
Visaggi, Salvatore
Relatore della tesi
Correlatore della tesi
Scuola
Corso di studio
Indirizzo
CURRICULUM A: TECNICHE DEL SOFTWARE
Ordinamento Cds
DM270
Parole chiave
deep learning,side-tuning,programming language recognition,neural network,transfer learning,convolutional neural network,StackOverflow,code snippet
Data di discussione della Tesi
18 Marzo 2021
URI

Altri metadati

Statistica sui download

Gestione del documento: Visualizza il documento

^