[发明专利]一种代码识别方法、装置、设备及存储介质有效
申请号: | 202110529497.6 | 申请日: | 2021-05-14 |
公开(公告)号: | CN113282293B | 公开(公告)日: | 2023-09-05 |
发明(设计)人: | 周佺 | 申请(专利权)人: | 北京京东振世信息技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 100086 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 识别 方法 装置 设备 存储 介质 | ||
本发明实施例公开了一种代码识别方法、装置、设备及存储介质。该方法包括:获取待分析代码对应的代码类型,并基于所述代码类型,确定与所述待分析代码对应的抽象语法树;基于所述抽象语法树,确定与所述待分析代码对应的代码识别数据;其中,所述代码识别数据包括函数调用数据;基于所述代码识别数据,确定与所述待分析代码对应的函数调用图。本发明实施例解决了现有代码图分析工具无法适配现有代码语法的问题,生成的函数调用图可使得开发人员直观的理解代码的编写思路,从而降低开发人员掌握代码的难度以及提高了后续工作的工作效率。
技术领域
本发明实施例涉及软件工程技术领域,尤其涉及一种代码识别方法、装置、设备及存储介质。
背景技术
面对日新月异的前端技术和日益复杂的前端系统,当我们接手一段新的代码时往往需要花费大量的时间和精力阅读和理解整个代码的逻辑和编写思路,以便完成后续的工作交接或代码维护。
现有的图分析工具code2flow是一种估算程序功能结构的工具,可将Python代码和Javascript代码转换为DOT流程图。具体的,code2flow工具通过遍历项目源代码,基于获取到的函数定义逻辑生成DOT流程图,以便用户直观的理解项目源代码的编写思路。
在实现本发明的过程中,发现现有技术中至少存在以下技术问题:
由于code2flow创建时间较早,只能适配于一些简单项目代码的语法和框架,无法适配目前主流的语法或前端框架。并且DOT流程图仅能表征项目代码的编写逻辑,并不能反映出项目代码中的函数调用关系。
发明内容
本发明实施例提供了一种代码识别方法、装置、设备及存储介质,以解决现有代码图分析工具无法适配主流语法的问题,以及降低开发人员掌握代码的难度。
第一方面,本发明实施例提供了一种代码识别方法,该方法包括:
获取待分析代码对应的代码类型,并基于所述代码类型,确定与所述待分析代码对应的抽象语法树;
基于所述抽象语法树,确定与所述待分析代码对应的代码识别数据;其中,所述代码识别数据包括函数调用数据;
基于所述代码识别数据,确定与所述待分析代码对应的函数调用图。
第二方面,本发明实施例还提供了一种代码识别装置,该装置包括:
抽象语法树确定模块,用于获取待分析代码对应的代码类型,并基于所述代码类型,确定与所述待分析代码对应的抽象语法树;
代码识别数据确定模块,用于基于所述抽象语法树,确定与所述待分析代码对应的代码识别数据;其中,所述代码识别数据包括函数调用数据;
函数调用图确定模块,用于基于所述代码识别数据,确定与所述待分析代码对应的函数调用图。
第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述所涉及的任一所述的代码识别方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行上述所涉及的任一所述的代码识别方法。
上述发明中的实施例具有如下优点或有益效果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东振世信息技术有限公司,未经北京京东振世信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110529497.6/2.html,转载请声明来源钻瓜专利网。