Publication Type

PhD Dissertation

Version

Publisher’s Version

Publication Date

8-2020

Abstract

It is desirable to combine machine learning and program analysis so that one can leverage the best of both to increase the performance of software analytics. On one side, machine learning can analyze the source code of thousands of well-written software projects that can uncover patterns that partially characterize software that is reliable, easy to read, and easy to maintain. On the other side, the program analysis can be used to define rigorous and unique rules that are only available in programming languages, which enrich the representation of source code and help the machine learning to capture the patterns better. In this dissertation, we aim to present novel code modeling approaches to learn the source code better and demonstrate the usefulness of such approaches in various software engineering tasks. The methods developed for the aims to utilize the advantages of both deep learning techniques and static code analysis techniques.

Keywords

neural network, software engineering, static analysis, program analysis, capsule network, interpretability, machine learning, deep learning, source code, code learning

Degree Awarded

PhD in Information Systems

Discipline

OS and Networks | Programming Languages and Compilers | Software Engineering

Supervisor(s)

JIANG, Lingxiao

First Page

1

Last Page

131

Publisher

Singapore Management University

City or Country

Singapore

Copyright Owner and License

Author

Share

COinS