买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:本发明公开了一种基于多样化引导的编译器中后端缺陷检测方法与系统,用来提高编译器的可靠性。本发明通过对种子程序进行预处理,使其能够检测到局部变量的变化,并从现实世界的代码中提取相应的代码结构,构建代码块语料库;本发明设计了插入变异、删除变异、替换变异等多种满足程序语法规约的变异算子,通过多样化引导策略来选择变异算子,使得种子程序朝结构和控制流更加多样化的方向变异,同时变异过程中尽可能保证程序变体的有效性,并结合UCB‑1算法来产生有效且多样化的程序变体,从而增加编译器中后端测试的效率和质量;最后使用生成的程序变体对编译器进行差分测试,检测编译器中后端缺陷。本发明能够提高编译器测试的覆盖率和测试效率。
主权项:1.一种基于多样化引导的编译器中后端缺陷检测方法,其特征在于,包括如下步骤:对种子程序进行预处理,预处理后的程序能够检测到局部变量的变化;构建代码块语料库,其中代码块从现实世界编译器缺陷库和项目中提取,并在提取完成后验证代码块是否在插入程序后会导致程序变体编译出错,如果出现前端错误,则将该代码块丢弃;设计多种变异算子,包括插入变异算子,删除变异算子和替换变异算子;基于多样化引导策略选择变异算子生成程序变体,使得种子程序朝结构和控制流更加多样化的方向变异,同时变异过程中保证程序变体的有效性,并结合UCB-1算法选择变异算子来产生有效且多样化的程序变体;所述UCB-1算法中,变异算子的奖励值是通过程序的多样性和有效性指标获得,如果某一次迭代生成的程序变体的程序距离大于前面所有迭代的程序距离平均值,同时这一次迭代生成的程序变体是有效的,则增加这一次迭代选用的变异算子的奖励值;其中两个程序的距离通过控制流图和程序语句来衡量;UCB-1算法公式如下所示: 其中,resultt表示第t次迭代选择的变异算子,tj表示直到第t次迭代为止第j个变异算子被选择的总数,xji表示第i次被选选择时第j个变异算子的奖励值;如果第t次迭代生成的程序变体的程序距离大于前t-1迭代的程序距离平均值,同时该程序变体是有效的,那么此时选用的变异算子的奖励值加1;使用生成的程序变体对编译器进行差分测试,检测编译器中后端缺陷。
全文数据:
权利要求:
百度查询: 南京航空航天大学 基于多样化引导的编译器中后端缺陷检测方法与系统
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。