咨询与建议

看过本文的还看了

相关文献

该作者的其他文献

文献详情 >ProSy: API-Based Synthesis wit... 收藏

ProSy: API-Based Synthesis with Probabilistic Model

作     者:Bin-Bin Liu Wei Dong Jia-Xin Liu Ya-Ting Zhang Dai-Yan Wang Bin-Bin Liu;Wei Dong;Jia-Xin Liu;Ya-Ting Zhang;Dai-Yan Wang

作者机构:College of Computer ScienceNational University of Defense TechnologyChangsha 410072China Key Laboratory of Software Engineering for Complex SystemsCollege of Computer ScienceNational University of Defense TechnologyChangsha 410072China 

出 版 物:《Journal of Computer Science & Technology》 (计算机科学技术学报(英文版))

年 卷 期:2020年第35卷第6期

页      面:1234-1257页

核心收录:

学科分类:0808[工学-电气工程] 08[工学] 0835[工学-软件工程] 0701[理学-数学] 0811[工学-控制科学与工程] 0812[工学-计算机科学与技术(可授工学、理学学位)] 081202[工学-计算机软件与理论] 

基  金:This paper was supported by the National Natural Science Foundation of China under Grant No.61690203 the National Key Research and Development Program of China under Grant No.2018YFB0204301 

主  题:application programming interface(API)-based program Petri net probabilistic reachability graph program synthesis 

摘      要:Program synthesis is an exciting topic that desires to generate programs satisfying user intent automatically. But in most cases, only small programs for simple or domain-specific tasks can be synthesized. The major obstacle of synthesis lies in the huge search space. A common practice in addressing this problem is using a domain-specific language, while many approaches still wish to synthesize programs in general programming languages. With the rapid growth of reusable libraries, component-based synthesis provides a promising way, such as synthesizing Java programs which are only composed of APIs (application programming interfaces). However, the efficiency of searching for proper solutions for complex tasks is still a challenge. Given an unfamiliar programming task, programmers would search for API usage knowledge from various coding resources to reduce the search space. Considering this, we propose a novel approach named ProSy to synthesize API-based programs in Java. The key novelty is to retrieve related knowledge from Javadoc and Stack Overflow and then construct a probabilistic reachability graph. It assigns higher probabilities to APIs that are more likely to be used in implementing the given task. In the synthesis process, the program sketch with a higher probability will be considered first;thus, the number of explored reachable paths would be decreased. Some extension and optimization strategies are further studied in the paper. We implement our approach and conduct several experiments on it. We compare ProSy with SyPet and other state-of-the-art API-based synthesis approaches. The experimental results show that ProSy reduces the synthesis time of SyPet by up to 80%.

读者评论 与其他读者分享你的观点

用户名:未登录
我的评分