当前位置:主页 > 科技论文 > 搜索引擎论文 >

程序合成研究进展

发布时间:2021-06-07 16:36
  在软件工程领域中,程序自动合成是一个非常核心的研究方向,并且在软件开发活动如此普及的社会中有望成为未来软件工程变革的核心技术。随着多年该领域的研究发展,已经衍生出了很多种不同的流派与技术路线。本文针对程序合成领域的发展现状与技术研究进展做了综合叙述,并探究目前程序合成领域所面临的挑着与未来一段时间内需要解决的问题。 

【文章来源】:软件. 2019,40(04)

【文章页数】:6 页

【部分图文】:

程序合成研究进展


程序合成方法分类Fig.1Classificationofprogramsynthesis

实例图,实例


第40卷第4期软件《软件》杂志欢迎推荐投稿:cosoft@vip.163.com26更多的挑战,包括需要克服自然语言与程序需求之间的差距和程序需求与实际程序代码之间的鸿沟。2程序合成的关键要素程序合成有三个关键要素[1],用户意图表述,搜索空间描述以及设计合适的搜索技术。用户意图表述有多种方式,逻辑规约,输入输出数据对,程序路径以及自然语言等。该如何选择不同的需求描述取决于具体的任务背景。逻辑规约用来描述程序输入输出间的逻辑关系,可以精确又简明的描述程序所遵循的规范,但是对于用户来说很难写出完整的程序逻辑规约。终端用户通常不如专家的编码水平,因此更倾向于提供自然性的需求描述如自然语言等。搜索空间通常需要在需求符合性和程序合成效率间做一个平衡。一方面程序搜索空间需要足够大到能够囊括用户需求所有可能的程序,另一方面为了提升程序合成的效率,需要采取更有效的搜索方法将搜索空间限定在小的范围内。例如搜索空间可以被限定为所有操作组成空间的一个子集,或者在一个领域特定语言的范围内。搜索技术与排序技术类似,目的是如何更有效的搜索出与需求接近的结果程序等。常见的搜索技术有枚举搜索、基于约束求解的搜索或者两者的结合等等。枚举搜索将所有可能的程序按照某个顺序一一列举,通常效率较低,因此更常见的发方法是在传统的枚举搜索的基础上加上启发式的剪枝方法来提升搜索效率。基于约束求解的搜索通常分为两个过程,约束生成过程和具体求解过程。约束生成过程是将需求解程序搜索空间用逻辑描述其规范并转换成约束的过程,生成约束通常需要对程序可能的控制流以及控制流下行为进行编码。求解约束的过程是在约束创建完成后,在约束所描述的搜索空间内按照某种方式列举可?


本文编号:3216926

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/sousuoyinqinglunwen/3216926.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户663ee***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com