本发明公开了一种基于字节码序列匹配的Java语句块克隆检测方法,本发明提出的方法是通过对指令的执行和跳转的分析来提取语句块级别的字节码代码片段,然后从字节码代码片段中提取指令并按照其实现的功能不同采用唯一的字符来表示。再采用序列匹配和相似度计算的方式,最终获得相似的代码片段。该方法通过对指令的执行和跳转的分析,从而精准地提取语句块级别的字节码代码片段,并按照指令实现的功能而采用唯一的字符来表示,从而提高了代码克隆的检测效率。在具体检测克隆代码的过程中,将序列匹配方法应用到了单一字符指令序列上,与其他传统方法相比,采用本方法有更好的检测识别效果。
📄 2019100033826
📂 G06F8_75
👤 杭州电子科技大学
📅 2019-01-03
本发明提供了一种基于LLVM的克隆代码检测方法,包括预处理步骤,合并映射步骤,提取分片步骤,匹配步骤,汇总步骤。首先对源代码预处理步骤,对源程序通过的前端转换成中间语言,然后对装换后的程序进行程序切片操作,获得中间语句之间的依赖关系,这一操作的获取LLVM IR语言的依赖图。然后对取得的数据进一步处理,获取更加精简的语句关系集。然后使用分割方法将语句集分割,在以分布式对比方法获取克隆代码。本发明中通过切边结果来获得关系集样本,并且保留了语句的特征。本发明将提高代码检测的匹配精度,利用LLVM IR中间语言带来的额外特征性,结合多种匹配方式丰富了匹配方法,实现了更加好的克隆代码检测。
📄 2017112746651
📂 G06F8_75
👤 南京邮电大学
📅 2017-12-06
一种面向技术特征的源代码对比方法、系统与程序产品,属于自然语言处理的技术领域。本发明包括:使用了基于函数调用结构的语义编码方法,从函数调用结构、函数名称和内置类等方面分析代码相似性;采用基于图卷积神经网络的自编码器方法进行图语义编码,基于语义向量对比代码结构语义;基于函数和内置类名称的调用信息向量进行函数相似性和内置类的相似性对比;最后将结构向量、函数向量和内置类向量进行拼接作为整体技术特征向量,比对代码相似度。本发明综合考虑了函数名、调用结构和内置类等技术特征信息,能够更好地依据技术特征进行代码对比。
📄 2022108084067
📂 G06F8_75
👤 山东大学
📅 2022-07-11
本发明涉及程序分析领域,提供一种基于自然语言处理的分布式程序切片方法、装置、设备和存储介质,包括如下步骤:利用自然语言处理技术提取及分析程序源代码所使用的分布式通信包中的具有通信功能的接口,并依据接口功能对其分类;基于所述程序源代码构造程序依赖图;基于所述通信接口和所述程序依赖图构造分布式程序依赖图;基于所述分布式程序依赖图计算分布式程序切片。本发明利用自然语言处理技术自动提取和识别通信接口并构造分布式程序依赖图,从而达到高效且精准计算分布式切片的效果。
📄 2023100471668
📂 G06F8_75
👤 安徽工业大学
📅 2023-01-31