  Source code summarization aims at generating concise and clear natural
language descriptions for programming languages. Well-written code summaries
are beneficial for programmers to participate in the software development and
maintenance process. To learn the semantic representations of source code,
recent efforts focus on incorporating the syntax structure of code into neural
networks such as Transformer. Such Transformer-based approaches can better
capture the long-range dependencies than other neural networks including
Recurrent Neural Networks (RNNs), however, most of them do not consider the
structural relative correlations between tokens, e.g., relative positions in
Abstract Syntax Trees (ASTs), which is beneficial for code semantics learning.
To model the structural dependency, we propose a Structural Relative Position
guided Transformer, named SCRIPT. SCRIPT first obtains the structural relative
positions between tokens via parsing the ASTs of source code, and then passes
them into two types of Transformer encoders. One Transformer directly adjusts
the input according to the structural relative distance; and the other
Transformer encodes the structural relative positions during computing the
self-attention scores. Finally, we stack these two types of Transformer
encoders to learn representations of source code. Experimental results show
that the proposed SCRIPT outperforms the state-of-the-art methods by at least
1.6%, 1.4% and 2.8% with respect to BLEU, ROUGE-L and METEOR on benchmark
datasets, respectively. We further show that how the proposed SCRIPT captures
the structural relative dependencies.
