【技术实现步骤摘要】
本专利技术属于代码克隆检测,特别是涉及一种基于抽象语法树优化和多表征的代码克隆检测方法、系统、终端设备及计算机可读存储介质。
技术介绍
1、代码克隆是一项软件工程任务的重要问题之一,在识别软件剽窃、代码重构或者代码搜索中都有广泛应用。同时代码克隆也是重要的软件缺陷种类之一,大多数软件重构都需要对代码克隆进行检测识别并且对其重构。目前主要的方法存在训练成本较高,准确度无法达到应用需求的问题。
2、在代码克隆检测行业主要有传统方式和基于模型两大类方式,其中和代码的具体结合可以分为基于文本、基于词法、基于语法、基于语义和基于度量值这五种方法。
3、基于文本和基于词法的方式大多使用传统方法进行比较,如使用kmp算法进行代码文本的直接匹配来寻找代码重复,或使用过滤后的token序列进行匹配,这种方法只能检测代码克隆中部分高度相似的代码,准确度较低。基于语法或语义的方法主要获得代码的ast并进行比较,传统方法有相似子图识别,高模糊网等方法。传统方法在精确度上表现较差。模型方法有采用词嵌入和dnn网络(astnn),采用lst
...【技术保护点】
1.一种基于抽象语法树优化和多表征的代码克隆检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的代码克隆检测方法,其特征在于,所述将前序序列和后序序列输入多层的Transformer网络,输出多个特征指纹,包括:
3.根据权利要求1所述的代码克隆检测方法,其特征在于,所述去除编译器生成的节点和编译错误的复原节点,包括:
4.根据权利要求1所述的代码克隆检测方法,其特征在于,所述对表达式节点细化,具体为:
5.根据权利要求1所述的代码克隆检测方法,其特征在于,所述分别将选择结构和循环结构转换为对应统一的子树结构,
...
【技术特征摘要】
1.一种基于抽象语法树优化和多表征的代码克隆检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的代码克隆检测方法,其特征在于,所述将前序序列和后序序列输入多层的transformer网络,输出多个特征指纹,包括:
3.根据权利要求1所述的代码克隆检测方法,其特征在于,所述去除编译器生成的节点和编译错误的复原节点,包括:
4.根据权利要求1所述的代码克隆检测方法,其特征在于,所述对表达式节点细化,具体为:
5.根据权利要求1所述的代码克隆检测方法,其特征在于,所述分别将选择结构和循环结构转换为对应统一的子树结构,包括:
6.根据权利要求1所述的代码克隆检测方法,其特征在...
【专利技术属性】
技术研发人员:林连南,于天辰,钟欣蕾,何宏魁,郭侦俊,蒋澈,
申请(专利权)人:华南理工大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。