Automatic code summarization frees software developers from the heavy burden of manual commenting and benefits software development and maintenance. Abstract Syntax Tree (AST), which depicts the source code's syntactic structure, has been incorporated to guide the generation of code summaries. However, existing AST based methods suffer from the difficulty of training and generate inadequate code summaries. In this paper, we present the Block-wise Abstract Syntax Tree Splitting method (BASTS for short), which fully utilizes the rich tree-form syntax structure in ASTs, for improving code summarization. BASTS splits the code of a method based on the blocks in the dominator tree of the Control Flow Graph, and generates a split AST for each code split. Each split AST is then modeled by a Tree-LSTM using a pre-training strategy to capture local non-linear syntax encoding. The learned syntax encoding is combined with code encoding, and fed into Transformer to generate high-quality code summaries. Comprehensive experiments on benchmarks have demonstrated that BASTS significantly outperforms state-of-the-art approaches in terms of various evaluation metrics. To facilitate reproducibility, our implementation is available at https://github.com/XMUDM/BASTS.


翻译:自动代码总和使软件开发者摆脱了手工评论的沉重负担,并有利于软件开发和维护。 描述源代码组合结构的简易语法树(AST)已经纳入,以指导代码摘要的生成。 但是,基于 AST 的现有方法在培训方面遇到困难,并生成了不充分的代码摘要。 在本文中,我们介绍了块状简易语法树分解法(BASTS),它充分利用了ASTs中丰富的树形合成结构来改进代码总和。 BASTS根据控制流程图的顶层分割了方法的代码,为每个代码分解生成了分裂的AST。 每种基于代码的分解法都采用树型- LSTM模型,使用培训前的战略来捕捉本地非线性语法编码。 学到的语法编码与代码编码相结合,并被输入到变异器中,以生成高质量的代码摘要。 BASTSTS大大超越了控制流程图图图图图图图中各块块的方形法的代码代码代码代码代码代码代码代码的代码代码代码。 BASTSDTSDSD的代码分解码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码代码,, 生成生成生成生成生成生成生成生成生成为每个的代码分。 每个代码都生成产生分裂。 每个代码分。 每个代码都是分。 每个代码分。 每个代码都使用模型模型模型模型模型模型模型模型模型模型模型都使用模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型。,然后用模型模型模型模型模型模型模型模型模型模型模型。,然后用模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型,,,,,然后用模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型模型,,,,,,,

0
下载
关闭预览

相关内容

AAAI2021 | 学习预训练图神经网络
专知会员服务
115+阅读 · 2021年1月28日
专知会员服务
109+阅读 · 2020年3月12日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
59+阅读 · 2019年10月17日
《DeepGCNs: Making GCNs Go as Deep as CNNs》
专知会员服务
30+阅读 · 2019年10月17日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
自然语言生成资源列表
专知
17+阅读 · 2020年1月4日
已删除
将门创投
6+阅读 · 2019年7月11日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
深度自进化聚类:Deep Self-Evolution Clustering
我爱读PAMI
15+阅读 · 2019年4月13日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
Jointly Improving Summarization and Sentiment Classification
黑龙江大学自然语言处理实验室
3+阅读 · 2018年6月12日
从 Encoder 到 Decoder 实现 Seq2Seq 模型
AI研习社
10+阅读 · 2018年2月10日
carla 体验效果 及代码
CreateAMind
7+阅读 · 2018年2月3日
Arxiv
3+阅读 · 2019年9月5日
Arxiv
5+阅读 · 2019年8月22日
VIP会员
相关资讯
自然语言生成资源列表
专知
17+阅读 · 2020年1月4日
已删除
将门创投
6+阅读 · 2019年7月11日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
深度自进化聚类:Deep Self-Evolution Clustering
我爱读PAMI
15+阅读 · 2019年4月13日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
Jointly Improving Summarization and Sentiment Classification
黑龙江大学自然语言处理实验室
3+阅读 · 2018年6月12日
从 Encoder 到 Decoder 实现 Seq2Seq 模型
AI研习社
10+阅读 · 2018年2月10日
carla 体验效果 及代码
CreateAMind
7+阅读 · 2018年2月3日
Top
微信扫码咨询专知VIP会员