[发明专利]代码检测方法、装置及电子设备有效
申请号: | 201910597267.6 | 申请日: | 2019-07-03 |
公开(公告)号: | CN110286912B | 公开(公告)日: | 2023-08-18 |
发明(设计)人: | 钟永红 | 申请(专利权)人: | 广东三维家信息科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F11/36 |
代理公司: | 北京超凡宏宇专利代理事务所(特殊普通合伙) 11463 | 代理人: | 宋朋飞 |
地址: | 510000 广东省广州市天河区天河软件园*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 检测 方法 装置 电子设备 | ||
本发明提供了一种代码检测方法、装置及电子设备,涉及计算机技术领域。该方法包括:按照预先划分的错误代码级别,利用预设编译工具对待检测代码进行编译;如果待检测代码编译成功,则生成语法树;待检测代码的各元素以节点的形式存在于语法树中;遍历所述语法树的全部节点,以检测是否有节点存在错误代码级别中的任意一级,得到检测结果。本发明实现了对待检测代码各个级别错误的全面检测,可以满足对诸如AS3等此类特殊代码的检测需求。
技术领域
本发明涉及计算机技术领域,尤其是涉及一种代码检测方法、装置及电子设备。
背景技术
在计算机编程中除了诸如C++等主流代码,还存在一些较为特殊的代码,许多在其它主流语言不支持的写法在此类特殊代码中是可以编译通过的。ActionScript3.0代码语言即为该类特殊代码的典型,以下以ActionScript3.0(简称AS3)代码为例进行说明。ActionScript是由Macromedia(现已被Adobe收购)为其Flash产品开发的,最初是一种简单的脚本语言,现在最新版本ActionScript3.0,语法类似JavaScript,对写法的约束比较弱,这样就导致了各个程序员的写法不统一,大大降低了代码的可读性、可拓展性以及可维护性。因为Adobe将停止Flash的维护,因此AS3代码在将来一定会或转换或改写成其它语言。因此,当前有必要对AS3进行代码检测,以保证现有的AS3代码符合主流编程语言的编写习惯和特性,以便将来AS3代码转换或改写成主流编程语言后不会存在语法错误。目前已发布的代码检测工具,主要是基于代码复杂度、代码重复比例和注释比例等因素对代码进行检测,无法满足诸如AS3等此类特殊代码的检测需求。
发明内容
本发明实施例的目的在于提供一种代码检测方法、装置及电子设备,该方法实现了对待检测代码各个级别错误的全面检测,可以满足对诸如AS3等此类特殊代码的检测需求。
第一方面,本发明实施例提供了一种代码检测方法,包括:按照预先划分的错误代码级别,利用预设编译工具对待检测代码进行编译;如果所述待检测代码编译成功,则生成语法树;所述待检测代码的各元素以节点的形式存在于所述语法树中;遍历所述语法树的全部所述节点,以检测是否有所述节点存在所述错误代码级别中的任意一级,得到检测结果。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述方法还包括:将存在错误代码的所述待检测代码改写转换成目标编程语言;根据改写后的所述待检测代码的编译结果和运行结果,以及所述目标编程语言的代码编写规范划分所述错误代码级别;所述目标编程语言包括C语言或C++语言。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述错误代码级别包括:第一级错误代码,是当所述第一级错误代码存在于所述改写后的所述待检测代码时,会导致所述改写后的所述待检测代码编译失败的错误代码;第二级错误代码,是当所述第二级错误代码存在于所述改写后的所述待检测代码时,会使所述改写后的所述待检测代码编译成功但运行必然失败的错误代码;第三级错误代码,是当所述第三级错误代码存在于所述改写后的所述待检测代码时,会使所述改写后的所述待检测代码编译成功但存在运行失败几率的错误代码;第四级错误代码,是当所述第四级错误代码存在于所述改写后的所述待检测代码时,会使所述改写后的所述待检测代码编译成功且运行成功但运行结果为错误或空值的错误代码;第五级错误代码,是当所述第五级错误代码存在于所述改写后的所述待检测代码时,不会影响所述改写后的所述待检测代码的编译和运行,但不符合所述目标编程语言的代码编写规范的错误代码。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述遍历所述语法树的全部所述节点,以检测是否有所述节点存在所述错误代码级别中的任意一级,得到检测结果的步骤,包括:重复执行预设的检测步骤,直到所述语法树中的全部所述节点检测完成;所述检测步骤包括:选取所述语法树中的任一节点作为第一节点,检测所述第一节点以及与所述第一节点相连的其他节点是否存在所述错误代码级别中记录的任意一级错误代码,得到检测结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东三维家信息科技有限公司,未经广东三维家信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910597267.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种使区块链能够访问外部数据的方法及装置
- 下一篇:核对代码包部署方法及装置