基于资源汇聚的程序合成方法

来源 :国防科技大学 | 被引量 : 0次 | 上传用户:dsclq
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着信息时代的迅猛发展,软件开发活动逐渐在越来越多的企业中扮演着更加重要的角色,为了将开发人员从复杂繁重的工作中解放出来,使得他们能够有更多时间进行软件高层设计,而不必要将时间都浪费在程序的实现细节上,研究人员做了大量研究工作在程序合成领域上。程序合成旨在能够围绕用户意图生成出符合需求的代码,以辅助程序员的开发工作,程序合成也成为软件工程未来研究的重要方向之一。目前程序合成领域面临着一些严苛的挑战,在实际应用中,程序合成常常面临底层程序搜索空间巨大,程序合成方法搜索效率低下等问题。本研究针对利用类型匹配的理论来生成loop-free的API序列程序的方法进行研究,发现其目前在很多功能需求上都存在效率问题,一方面因为该方法采取了随机枚举Sketch进行测试,无法做到启发式的程序合成,因此当API集合规模较大时效率会很低。另一方面该方法从短到长枚举程序,在解程序过长的需求上,也会面临搜索空间指数爆炸的问题。针对以上问题,本文提出了基于资源汇聚的程序合成方法,设计了两个优化策略来针对以上两个问题进行优化。策略1旨在改进目前基于API的程序合成方法随机枚举API序列,无法启发式的搜索可行解的缺陷,因此本文提出为用户需求添加自然语言描述,然后利用Java Library提取出的API对应的Javadoc作为API描述,通过相似度匹配定位出需求极其相关的top k个API,在具体实现中,枚举Sketch的过程里将包含相关API的Sketch的排序提前,使得程序合成有可能优先找到需求的可行解而无需将大量时间浪费在无用的Sketch上的方法。策略2旨在能够减少程序合成需要搜索的代码长度,因此本研究设计了利用频繁模式挖掘工具,在不同领域的Java实现代码上挖掘出常用API序列,在程序合成过程中将API序列包装成完整的API,以减少程序合成过程中程序代码搜索长度的优化策略。本课题研究通过汇集Javadoc文档以及Github上大量Java代码项目中的代码知识,指导经典的基于API的程序合成过程,使其在程序合成的过程中能够以启发式的策略枚举可行解,提升合成效率,并利用先验编码知识,减少不必要的空间搜索,进一步缩短程序搜索空间,最后在大量实例上证明了方法的有效性。
其他文献
信息技术的高速发展,极大地改变了作战样式,体系中各武器装备之间的交互影响关系越来越复杂,并且这种交互影响关系往往不是预先设定的,这对装备体系的建模与评估提出了挑战。基于网络的方法能够很好地反映体系中各装备的关联关系,目前已经被广泛应用于体系建模与评估分析中,但是现有的研究大多数局限于静态网络建模,无法反映各装备间的复杂动态交互影响关系。本文通过对装备体系中存在的交互影响关系进行分析,基于超网络理论
随着互联网技术的不断发展,来自世界各地的开发者通过在线开源社区互相协作、贡献代码,产生了大量高质量的开源软件。作为软件质量的重要方面,内部质量(如可靠性、可维护性等)是软件成功的主要因素,更是实现分布式协同创作开源软件的重要保证。然而,开源社区中开发者个体的水平参差不齐,编程风格迥异,对项目的质量保证和管理工作带来了挑战。对于内部质量分析工具报告的代码质量问题(Code Quality Issue
报纸
随着人们对获取知识的效率要求不断提高,在线知识共享行为以其高速、高效的特点吸引了众多关注,作为以开源开发为主题的在线知识共享场所的开源知识问答社区也得到了蓬勃的发展。在这些虚拟社区中,用户可以通过提问、回答的形式进行知识交流,极大地提高了解决问题的效率。同时,此类社区在管理方面具有开放性和松散性特点,社区中用户的行为具有高度自主性和自组织性,导致社区具有高度的交互复杂性。并且社区中包含大量具有不同
随着互联网技术和信息技术的发展,传统的搜索方式逐渐被以知识图谱为支撑的搜索方式所代替,以知识图谱为支撑的搜索方式不仅能为用户提供更为精确的结果,而且还能提供其他相关联的知识点。作为构建知识图谱的重要基础工作,命名实体识别一直都是一个受关注度非常高的课题。相对英文上的命名实体研究而言,面向中文的实体抽取技术研究水平相对滞后,方法多是在面向英文的研究工作基础上,加入部分人工语言特征来实现实体的识别与抽
基于非线性频率上转换的红外成像技术,是利用激光与物质相互作用实现频率变换的方法,将低频红外图像等信息转换到近红外或者可见光波段,再通过高性能的近红外或可见光相机对转换信息进行探测,可以间接实现低频红外图像信息的探测。相比于传统的高成本红外成像相机,基于非线性频率上转换的红外成像技术具有高速响应且无需冷却、固有噪声低等特点,具有很好的研究前景,而且随着激光技术的发展和非线性晶体材料研究的进步,非线性
光场相机是一种在图像传感器前加入微透镜阵列的新型相机结构,不但能够捕捉空间光线位置信息,还能够捕捉光线方向信息。这一特殊的光学结构,决定了其异于传统相机的新颖功能,例如全聚焦成像、重聚焦成像、多视角成像、合成孔径成像、去湍流成像、深度估计、波前探测等。对于微距、近景、中景等不同的应用场景,如何突破传统光场相机的结构限制,设计出满足分辨率要求的最佳参数组合,并计算具有真实量纲的点云数据,是本文的研究
复杂网络,即是复杂系统的一种抽象形式。它将系统中的个体和关联抽象为网络中的节点和链路。在复杂网络的应用中,有一项很重要的就是链路预测,即预测网络中存在的但未被发现的关联或者预测网络中未来可能存在的关系。在链路预测中,通常会利用网络节点的属性以及网络的结构。然而,现实生活中的网络中往往有很多噪声信息,从而干扰我们对网络未知链路的预测,因此研究网络噪声对链路预测的影响,即网络链路预测的鲁棒性成为了我们
同步定位与建图(Simultaneous localization and mapping,SLAM)技术对于无人机在无导航信息的未知环境中执行任务有着至关重要的作用。多架无人机相互配合,共同完成SLAM可以获得更快的建图速度和更高精度的定位结果,在军用和民用领域都具有广阔的应用前景。本文以搭载激光雷达的旋翼无人机为研究对象,对多无人机协同SLAM技术展开研究。首先,对多机SLAM的基础:单无人机
2018年,美国兰德公司、战略与预算评估中心等多家智库不约而同地推出“政治战”研究报告,认为美国在现代战争方面存在根本性缺陷,单一的军事手段已无法满足维护其国家利益的需要,应改变对于传统军事战争的依赖,积极发展21世纪“政治战”(Political Warfare)能力。他们积极鼓动特朗普政府重拾冷战工具,对中俄等国发动“政治战”的背后,折射的是美国基于对中俄等国家快速崛起,挑战其全球霸权地位引发