获取代码片段的方法、装置及存储介质制造方法及图纸

技术编号:40253603 阅读:23 留言:0更新日期:2024-02-02 22:46
本申请公开了一种获取代码片段的方法、装置及存储介质,属于软件工程领域。所述方法包括:获取待处理代码片段的特征集合,待处理代码片段包括多个代码语句,待处理代码片段的特征集合包括待处理代码片段中的代码语句对应的至少一个内容特征;基于特征集合获取第一程序文件,第一程序文件包括特征集合中的内容特征对应的目标代码语句;基于目标代码语句从所述第一文件中获取目标代码片段,目标代码片段的特征集合与待处理代码片段的特征集合之间满足相似条件,目标代码片段的特征集合包括目标代码片段中的代码语句对应的至少一个内容特征,目标代码片段是与待处理代码片段相似的代码片段。本申请能够提高获取相似代码片段的召回率。

【技术实现步骤摘要】

本申请涉及软件工程领域,特别涉及一种获取代码片段的方法、装置及存储介质


技术介绍

1、一个程序文件中的一个代码片段可能与另一个程序文件中的某个代码片段相似,目前可以获取相似的两个代码片段。获取相似代码片段的技术一直是软件工程领域的一个重要研究方向,在重复代码识别、公共代码挖掘或侵权识别等多个场景都有广泛地应用。

2、对于一个程序文件,从该程序文件中选择一个代码块作为待处理代码块,获取待处理代码块的多个代码语句集合,每个代码语句集合包括待处理代码块中的连续m个代码语句,m为大于1的整数且每个代码语句集合不同。基于该多个代码语句集合,从程序库中获取目标代码块,该程序库包括大量程序文件中的代码块和各代码块的多个代码语句集合,且目标代码块的多个代码语句集合与待处理代码块的多个代码语句集合之间存在超过指定个数的相同代码语句集合。将待处理代码块与目标代码块作为相似的两个代码片段。

3、目前在目标代码块的代码语句集合与待处理代码块的代码语句集合之间存在超过指定个数的相同代码语句集合时,将待处理代码块与目标代码块作为相似的两个代码片段,导致获取相本文档来自技高网...

【技术保护点】

1.一种获取代码片段的方法,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,所述方法还包括:

3.如权利要求1所述的方法,其特征在于,所述待处理代码片段是包括漏洞的代码片段,所述目标代码片段也包括所述漏洞,所述方法还包括:

4.如权利要求1所述的方法,其特征在于,所述方法还包括:

5.如权利要求1-4任一项所述的方法,其特征在于,所述基于所述特征集合获取第一程序文件,包括:

6.如权利要求1-5任一项所述的方法,其特征在于,所述基于所述目标代码语句从所述第一文件中获取目标代码片段,包括:</p>

7.如权...

【技术特征摘要】

1.一种获取代码片段的方法,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,所述方法还包括:

3.如权利要求1所述的方法,其特征在于,所述待处理代码片段是包括漏洞的代码片段,所述目标代码片段也包括所述漏洞,所述方法还包括:

4.如权利要求1所述的方法,其特征在于,所述方法还包括:

5.如权利要求1-4任一项所述的方法,其特征在于,所述基于所述特征集合获取第一程序文件,包括:

6.如权利要求1-5任一项所述的方法,其特征在于,所述基于所述目标代码语句从所述第一文件中获取目标代码片段,包括:

7.如权利要求1-6任一项所述的方法,其特征在于,所述待处理代码片段包括的代码语句个数不超过第一个数阈值,和/或,所述目标代码片段包括的代码语句个数不超过第二个数阈值。

8.如权利要求1-7任一项所述的方法,其特征在于,所述获取待处理代码片段的特征集合,包括:

9.如权利要求1-7任一项所述的方法,其特征在于,所述获取待处理代码片段的特征集合,包括:

10.如权利要求5所述的方法,其特征在于,所述方法还包括:

11.如权利要求10所述的方法,其特征在于,所述基于所述至少一个程序文件,建立所述倒排索引映射关系,包括:

12.一种获取代码片段的装置,其特征在于,所述装置包括:

13.如权利要求12所述的装置,其特征在于,所述处理单元,还用于将所述待处理代码片段和所述目标代码片段确定为公共代码片段并保存到公共代码库中。

...

【专利技术属性】
技术研发人员:董克钦曾正阳
申请(专利权)人:华为云计算技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1