How Much Support Can API Recommendation Methods Provide for Component-Based Synthesis?

Jiaxin Liu, Binbin Liu, Wei Dong, Yating Zhang, Daiyan Wang
{"title":"How Much Support Can API Recommendation Methods Provide for Component-Based Synthesis?","authors":"Jiaxin Liu, Binbin Liu, Wei Dong, Yating Zhang, Daiyan Wang","doi":"10.1109/COMPSAC48688.2020.0-155","DOIUrl":null,"url":null,"abstract":"Program synthesis is one of the key research areas in software engineering. Many approaches design domain-specific language to constrain the program space to make the problem tractable. Although these approaches can be effective in certain domains, it is still a challenge to synthesize programs in generic programming languages. Fortunately, the component-based synthesis provides a promising way to generate generic programs from a component library of application programming interfaces (APIs). However, the program space constituted by all the APIs in the library is still very large. Hence, only small programs can be synthesized in practice. In recent years, many approaches of API recommendation have been proposed, which can recommend relevant APIs given some specifications. We think that applying this technique to component-based synthesis is a feasible way to reduce the program space. And we believe that how much support the API recommendation methods can provide to component-based synthesis is also an important criterion in measuring the effectiveness of these methods. In this paper, we investigate 5 state-of-the-art API recommendation methods to study their effectiveness in supporting component-based synthesis. Besides, we propose an approach of API Recommendation via General Search (ARGS). We collect a set of programming tasks and compare our approach with these 5 API recommendation methods on synthesizing these tasks. The experimental results show that the capability of these API recommendation methods is limited in supporting component-based synthesis. On the contrary, ARGS can support component-based synthesis well, which can effectively narrow down the program space and eventually improve the efficiency of program synthesis. The experimental results show that ARGS can help to significantly reduce the synthesis time by 86.1% compared to the original SyPet.","PeriodicalId":430098,"journal":{"name":"2020 IEEE 44th Annual Computers, Software, and Applications Conference (COMPSAC)","volume":"28 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 IEEE 44th Annual Computers, Software, and Applications Conference (COMPSAC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/COMPSAC48688.2020.0-155","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3

Abstract

Program synthesis is one of the key research areas in software engineering. Many approaches design domain-specific language to constrain the program space to make the problem tractable. Although these approaches can be effective in certain domains, it is still a challenge to synthesize programs in generic programming languages. Fortunately, the component-based synthesis provides a promising way to generate generic programs from a component library of application programming interfaces (APIs). However, the program space constituted by all the APIs in the library is still very large. Hence, only small programs can be synthesized in practice. In recent years, many approaches of API recommendation have been proposed, which can recommend relevant APIs given some specifications. We think that applying this technique to component-based synthesis is a feasible way to reduce the program space. And we believe that how much support the API recommendation methods can provide to component-based synthesis is also an important criterion in measuring the effectiveness of these methods. In this paper, we investigate 5 state-of-the-art API recommendation methods to study their effectiveness in supporting component-based synthesis. Besides, we propose an approach of API Recommendation via General Search (ARGS). We collect a set of programming tasks and compare our approach with these 5 API recommendation methods on synthesizing these tasks. The experimental results show that the capability of these API recommendation methods is limited in supporting component-based synthesis. On the contrary, ARGS can support component-based synthesis well, which can effectively narrow down the program space and eventually improve the efficiency of program synthesis. The experimental results show that ARGS can help to significantly reduce the synthesis time by 86.1% compared to the original SyPet.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
API推荐方法能为基于组件的合成提供多少支持?
程序综合是软件工程中的一个重要研究领域。许多方法设计领域特定语言来约束程序空间,使问题易于处理。尽管这些方法在某些领域是有效的,但用泛型编程语言合成程序仍然是一个挑战。幸运的是,基于组件的合成提供了一种很有前途的方法,可以从应用程序编程接口(api)的组件库生成泛型程序。但是,由库中所有api构成的程序空间仍然非常大。因此,在实践中只能合成小程序。近年来,人们提出了许多API推荐方法,即在给定一定规范的情况下推荐相关API。我们认为将该技术应用于基于组件的合成是减小程序空间的可行方法。我们认为,API推荐方法对基于组件的合成的支持程度也是衡量这些方法有效性的重要标准。在本文中,我们研究了5种最先进的API推荐方法,以研究它们在支持基于组件的合成中的有效性。此外,我们还提出了一种基于通用搜索(ARGS)的API推荐方法。我们收集了一组编程任务,并将我们的方法与这5种API推荐方法在综合这些任务方面进行了比较。实验结果表明,这些API推荐方法在支持基于组件的合成方面能力有限。相反,ARGS可以很好地支持基于组件的合成,这可以有效地缩小程序空间,最终提高程序合成效率。实验结果表明,与原有的SyPet相比,ARGS可以将合成时间显著降低86.1%。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
The European Concept of Smart City: A Taxonomic Analysis An Early Warning System for Hemodialysis Complications Utilizing Transfer Learning from HD IoT Dataset A Systematic Literature Review of Practical Virtual and Augmented Reality Solutions in Surgery Optimization of Parallel Applications Under CPU Overcommitment A Blockchain Token Economy Model for Financing a Decentralized Electric Vehicle Charging Platform
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1