A Survey of Source Code Representations for Machine Learning-Based
  Cybersecurity Tasks
Beatrice Casey Joanna C. S. Santos George Perry
Machine learning techniques for cybersecurity-related software engineering
tasks are becoming increasingly popular. The representation of source code is a
key portion of the technique that can impact the way the model is able to learn
the features of the source code. With an increasing number of these techniques
being developed, it is valuable to see the current state of the field to better
understand what exists and what's not there yet. This paper presents a study of
these existing ML-based approaches and demonstrates what type of
representations were used for different cybersecurity tasks and programming
languages. Additionally, we study what types of models are used with different
representations. We have found that graph-based representations are the most
popular category of representation, and Tokenizers and Abstract Syntax Trees
(ASTs) are the two most popular representations overall. We also found that the
most popular cybersecurity task is vulnerability detection, and the language
that is covered by the most techniques is C. Finally, we found that
sequence-based models are the most popular category of models, and Support
Vector Machines (SVMs) are the most popular model overall.