Graph neural network and dependency graphs for function name prediction

  • Bastien Nicolas

Student thesis: Master typesMaster in Computer Science Professional focus in Data Science

Abstract

With the increasing popularity of deep learning, graph neural networks (GNNs) have been widely used for a variety of tasks in domains like natural language processing (NLP) and software engineering (SE). Researches in code summarization started to use GNNs to extract the code semantics gathered through the graph structures of source codes and achieved state-of-the-art results. Most of those graph structures are directly extracted from abstract syntax trees (ASTs) which are used by compilers to represent the structure of a program. Even though ASTs incorporate semantics properties of programs, we conjecture that these representations also introduce noise by including aspects like loop, conditional expressions and syntactical elements. In this thesis, we present an original approach to generate dependency graphs from source codes and use them in a GNN architecture to predict functions names. Our results show that using dependency graphs instead of ASTs to extract the semantic of a source code, can match performance of state-of-the-art on some metrics while reducing the need of computational resources.
Date of Award31 Aug 2021
Original languageEnglish
Awarding Institution
  • University of Namur
SupervisorBenoit Vanderose (Supervisor)

Keywords

  • Graph Neural Network
  • GNN
  • Natural Language Processing
  • NLP
  • Software engineering
  • code summarization
  • Abstract Syntax Tree
  • AST
  • dependency graph

Cite this

'