A Neural Network Architecture for Program Understanding Inspired by Human Behaviors
Program understanding is a fundamental task in program language processing.
Despite the success, existing works fail to take human behaviors as reference
in understanding programs. In this paper, we consider human behaviors and
propose the PGNN-EK model that consists of two main components. On the one
hand, inspired by the "divide-and-conquer" reading behaviors of humans, we
present a partitioning-based graph neural network model PGNN on the upgraded
AST of codes. On the other hand, to characterize human behaviors of resorting
to other resources to help code comprehension, we transform raw codes with
external knowledge and apply pre-training techniques for information
extraction. Finally, we combine the two embeddings generated from the two
components to output code embeddings. We conduct extensive experiments to show
the superior performance of PGNN-EK on the code summarization and code clone
detection tasks. In particular, to show the generalization ability of our
model, we release a new dataset that is more challenging for code clone
detection and could advance the development of the community. Our codes and
data are publicly available at https://github.com/RecklessRonan/PGNN-EK.