复杂结构开源代码的约束转换及实现

来源 :宁波大学 | 被引量 : 0次 | 上传用户:lc813
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着互联网的快速发展以及开源软件的广泛普及,通过重用已有的开源软件或者相关代码,可极大地提高软件开发效率,降低开发成本。软件开发者花费大量的时间在互联网上搜索相关的软件或者代码加以重用,故如何提高开源代码搜索的效率得到了业界的广泛关注。通过能够体现代码功能的关键字进行代码搜索是一种常用的开源代码搜索方法,但该方法主要通过语法上的关键字内容匹配来实现代码查询,故存在搜索准确度不高的问题,需要用户对搜索结果进行人工筛选,才能得到期望的源代码。目前,基于输入输出匹配的开源代码搜索方法解决了关键字代码搜索方法的上述不足,它是一种重要的基于语义匹配的搜索方法。该方法将代码存储库中的代码编码为约束,同时也将用户提供的输入输出对转化成约束,通过使用Satisfiability Modulo Theories(SMT,可满足性模理论)求解器查询相匹配的约束,以返回用户需要的源代码。基于输入输出匹配的源代码搜索方法虽然弥补了关键字代码搜索方法的缺陷,但也存在明显不足。首先,该方法仅仅考虑了顺序结构代码的处理方式,未对复杂结构进行处理。其次,该方法是在代码匹配阶段才将代码转化为约束,故导致搜索效率较低。本文经过调查和研究已有的工作,针对他们研究中的不足,对已有的基于输入输出的开源代码搜索方法进行改进和完善。首先,将已有输入输出源代码搜索方法中代码约束转换提前至代码组织阶段,把复杂结构转换成顺序结构,然后再进行约束转换。在代码匹配阶段只需将给定的输入输出与已转换的约束进行匹配,将减少搜索所花费的时间。其次,提出将选择结构程序代码转换为顺序结构程序代码,并在语义上证明转换的逻辑正确性。该方法提出了根据选择路径的特性,将选择路径的代码处理为多个单路径的代码析取关系,并证明了这种转换方式的语义正确性。在上述基础上分别设计双分支结构转换算法、多分支结构转换算法、以及分支嵌套结构转换算法。然后,提出将包含循环结构的程序代码转换为顺序结构,并在语义上证明转换的逻辑正确性。转换思路是将循环转换成分支结构,首先需通过差分方程求出循环的次数,进而确定转换的分支结构,最终将其转换为顺序结构。最后,用Python编程语言实现将复杂结构转换为顺序结构的工具。该工具包括代码载入模块、语法正确性分析模块、代码转换模块三个部分。实例运行表明,针对输入的复杂结构代码,该工具能得到期望的转换代码,与理论分析结果相符。
其他文献
随着世界人口扩张以及科学技术水平的不断发展,能源的开发利用与环境保护之间的矛盾逐渐凸显。所以,发展新能源以及节能技术是突破当前能源问题的重点。温差发电是一种将工业
近年来,随着城镇化的发展和建设规模的扩大,延安地区出现了大量高填方工程。由于高填方工程具有填方厚度大,地基应力高的工程特点,而且人们对高填方工程力学特性问题缺乏整体
分级基金也叫做结构型基金,是在一个投资组合下通过对基金收益或净资产的分解,形成两级(或多级)风险收益表现有一定差异化基金份额的基金品种。分级基金与其他普通基金相比的
电子书出版发行业发展快,电子书数量越来越多,高校图书馆提供服务需求越来越要求个性化,而汇文系统采访功能设和电子书供应商系统采访功能设计也十分欠缺,采访人员所面临的困境越来越大,因此,根据图书馆自身工作的特点,设计出一套程序,可以将工作去繁化简,提高效率,将计算机技术,成为自己的好帮手,是目前唯一能解决当前困境的方法。由此可见:电子图书采访辅助系统构建十分必要。本硕士论文通过调查研究,分析了电子图书
在现代互联网与大数据的冲击下,数据规模增长迅速,用户需求趋向于个性多样,传统的技术手段已然无法处理海量数据所带来的超载问题。推荐算法作为数据挖掘中的一个重要分支,在面对大型数据处理上,有着缓解数据冗余的优势,不仅能从中挖掘出用户感兴趣的数据,同时也给用户推送有价值的长尾信息。基于用户信任的推荐算法相比传统推荐,引入信任辅助数据,缓解数据稀疏,在一定程度上提升了算法性能。但多数研究并没有深入分析到用
为探究不同生长型树种(落叶树种和常绿树种)间根系分泌物及其介导的土壤N素转化过程的差异,本文以西南山地3个落叶树种──连香树(Cercidiphyllum japonicum)、白桦(Betula p
随着人类在多年冻土区生产活动的增加,对于电力输送的要求与日俱增。然而多年冻土区输电杆塔建成在后期的使用过程中,由于外界环境温度的周期性交替变化,导致桩基础产生冻胀
水轮发电机组时常会承载着电网的调峰调频任务,机组出力的频繁改变导致水轮机难免地会在非最优工况下运行。当混流式水轮机运行在非最优的工况点时,流道进口处的水流与叶片之
发展轨道交通特别是地铁是解决大城市乘车困难,缓解道路拥挤的有效手段。随之而来的地铁隧道安全问题日益受到关注,如何高效、准确地监测地铁隧道变形是地下工程研究的热点和
随着科技迅猛发展,消费者使用的物品终会出现各种故障,在期望得到售后服务的过程中又总是特别繁琐并且周期较长。所以往往一个产品能提供优秀的售后服务成为消费者选择购买产