计算机科学
依赖关系图
Python(编程语言)
嵌入
Java
程序设计语言
依赖关系(UML)
代码生成
编码器
图形
脚本语言
源代码
理论计算机科学
编码(集合论)
人工智能
软件
操作系统
集合(抽象数据类型)
计算机安全
钥匙(锁)
作者
Chen Lyu,Ruyun Wang,Hongyu Zhang,Hanwen Zhang,Songlin Hu
标识
DOI:10.1007/s10664-021-09968-2
摘要
The problem of code generation from textual program descriptions has long been viewed as a grand challenge in software engineering. In recent years, many deep learning based approaches have been proposed, which can generate a sequence of code from a sequence of textual program description. However, the existing approaches ignore the global relationships among API methods, which are important for understanding the usage of APIs. In this paper, we propose to model the dependencies among API methods as an API dependency graph (ADG) and incorporate the graph embedding into a sequence-to-sequence (Seq2Seq) model. In addition to the existing encoder-decoder structure, a new module named ``embedder" is introduced. In this way, the decoder can utilize both global structural dependencies and textual program description to predict the target code. We conduct extensive code generation experiments on three public datasets and in two programming languages (Python and Java). Our proposed approach, called ADG-Seq2Seq, yields significant improvements over existing state-of-the-art methods and maintains its performance as the length of the target code increases. Extensive ablation tests show that the proposed ADG embedding is effective and outperforms the baselines.
科研通智能强力驱动
Strongly Powered by AbleSci AI