Source code (Context) and its parsed abstract syntax tree (AST; Structure) are two complementary representations of the same computer program. Traditionally, designers of machine learning models have relied predominantly either on Structure or Context. We propose a new model, which jointly learns on Context and Structure of source code. In contrast to previous approaches, our model uses only language-agnostic features, i.e., source code and features that can be computed directly from the AST. Besides obtaining state-of-the-art on monolingual code summarization on all five programming languages considered in this work, we propose the first multilingual code summarization model. We show that jointly training on non-parallel data from multiple programming languages improves results on all individual languages, where the strongest gains are on low-resource languages. Remarkably, multilingual training only from Context does not lead to the same improvements, highlighting the benefits of combining Structure and Context for representation learning on code.
@article{arxiv.2103.11318,
title = {Language-Agnostic Representation Learning of Source Code from Structure and Context},
author = {Daniel Zügner and Tobias Kirschstein and Michele Catasta and Jure Leskovec and Stephan Günnemann},
journal= {arXiv preprint arXiv:2103.11318},
year = {2021}
}