Multi-View Graph Representation for Programming Language Processing: An
  Investigation into Algorithm Detection
  Program representation, which aims at converting program source code into
vectors with automatically extracted features, is a fundamental problem in
programming language processing (PLP). Recent work tries to represent programs
with neural networks based on source code structures. However, such methods
often focus on the syntax and consider only one single perspective of programs,
limiting the representation power of models. This paper proposes a multi-view
graph (MVG) program representation method. MVG pays more attention to code
semantics and simultaneously includes both data flow and control flow as
multiple views. These views are then combined and processed by a graph neural
network (GNN) to obtain a comprehensive program representation that covers
various aspects. We thoroughly evaluate our proposed MVG approach in the
context of algorithm detection, an important and challenging subfield of PLP.
Specifically, we use a public dataset POJ-104 and also construct a new
challenging dataset ALG-109 to test our method. In experiments, MVG outperforms
previous methods significantly, demonstrating our model's strong capability of
representing source code.
