  Learning representation for source code is a foundation of many program
analysis tasks. In recent years, neural networks have already shown success in
this area, but most existing models did not make full use of the unique
structural information of programs. Although abstract syntax tree-based neural
models can handle the tree structure in the source code, they cannot capture
the richness of different types of substructure in programs. In this paper, we
propose a modular tree network (MTN) which dynamically composes different
neural network units into tree structures based on the input abstract syntax
tree. Different from previous tree-structural neural network models, MTN can
capture the semantic differences between types of ASTsubstructures. We evaluate
our model on two tasks: program classification and code clone detection.
Ourmodel achieves the best performance compared with state-of-the-art
approaches in both tasks, showing the advantage of leveraging more elaborate
structure information of the source code.
