[发明专利]一种代码检测方法及装置有效
申请号: | 202010326315.0 | 申请日: | 2020-04-23 |
公开(公告)号: | CN111552638B | 公开(公告)日: | 2023-08-18 |
发明(设计)人: | 苟亚明;蔡宇 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京银龙知识产权代理有限公司 11243 | 代理人: | 黄灿;顾春天 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 检测 方法 装置 | ||
1.一种代码检测方法,其特征在于,包括以下步骤:
提取软件模块中包括的源代码;
提取所述源代码中的函数;
利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数,以检测所述源代码中的临时变量和执行分支中的一项或多项;
标记冗余的临时变量和冗余的执行分支中的一项或多项;
其中,所述提取软件模块中包括的源代码之后,还包括:
将所述源代码根据编程语言划分为不同的类型;
获取每一种编程语言的子类函数和基类函数的对应关系作为所述编程语言对应的基类模板;
其中,所述利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数,包括:
标记所述函数中的参数、临时变量和全局变量;
根据参数、所述临时变量和所述全局变量利用字符串匹配算法匹配所述函数中的子类函数和所述基类模板对应的基类函数;
根据匹配结果获取所述基类函数的函数声明,所述函数声明中包括对于所述子类函数中的临时变量和执行分支中的一项或多项的检测结果。
2.如权利要求1所述的代码检测方法,其特征在于,所述将所述源代码根据编程语言划分为不同的类型,包括:
识别所述源代码的文件后缀,并根据所述文件后缀将所述源代码划分至不同的匹配模板;
提取所述源代码中函数的返回值类型、函数名和参数列表,以及函数的属性和协议,以区分同一匹配模板中的源代码对应的编程语言。
3.如权利要求1所述的代码检测方法,其特征在于,所述利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数之前,包括:
根据预设映射关系建立所述子类函数对应的第一缩写特征表;
基于所述预设映射关系建立基类函数的对应的第二缩写特征表作为所述基类模板。
4.一种代码检测装置,其特征在于,包括:
第一提取模块,用于提取软件模块中包括的源代码;
第二提取模块,用于提取所述源代码中的函数;
匹配模块,用于利用与所述函数的类型相对应的基类模板匹配所述函数中的子类函数,以检测所述源代码中的临时变量和执行分支中的一项或多项;
标记模块,用于标记冗余的临时变量和冗余的执行分支中的一项或多项;
其中,所述装置还包括:
划分模块,用于将所述源代码根据编程语言划分为不同的类型;
基类模板获取模块,用于获取每一种编程语言的子类函数和基类函数的对应关系作为所述编程语言对应的基类模板;
其中,所述匹配模块包括:
标记子模块,用于标记所述函数中的参数、临时变量和全局变量;
匹配子模块,用于根据参数、所述临时变量和所述全局变量利用字符串匹配算法匹配所述函数中的子类函数和所述基类模板对应的基类函数;
获取子模块,用于根据匹配结果获取所述基类函数的函数声明,所述函数声明中包括对于所述子类函数中的临时变量和执行分支中的一项或多项的检测结果。
5.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1至3任一所述的代码检测方法步骤。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时,实现权利要求1至3任一所述的代码检测方法步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010326315.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种指纹头结构
- 下一篇:一种物联网信息显示方法、计算机设备及存储介质