程序代码分析方法及装置制造方法及图纸

技术编号:42204854 阅读:17 留言:0更新日期:2024-07-30 18:49
本说明书实施例提供了程序代码分析方法及装置。该方法包括:获取使用动态语言编写的程序代码中的多条声明语句对应的多个实体信息;对该多条声明语句进行动态对象建模,生成多个对象建模信息,单个对象建模信息包括对应的声明语句所声明的实体的实体信息的标识;在第一语句对应的第一实体信息中添加第二属性,其属性值包括第一语句和若干第二语句各自对应的对象建模信息的标识,第一语句是该多条声明语句中首条包括第一实体信息中的第一符号名称的语句,该若干第二语句均用于对第一符号名称进行指向改写;基于更新后的该多个实体信息和该多个对象建模信息,确定程序代码中的各条符号引用表达式对应的代码依赖关系。

【技术实现步骤摘要】

本说明书实施例涉及计算机,具体地,涉及程序代码分析方法及装置


技术介绍

1、代码依赖分析是静态程序分析的应用之一,旨在将代码中的符号引用与其对应的声明绑定起来以形成def-use(定义-引用)关系。代码静态分析结果广泛应用于ide(integrated development environment,集成开发环境)中代码跳转与导航、代码检查、漏洞检测、软件架构分析等。

2、动态语言与静态语言的特性不同,主要表现在动态语言是运行时才确定数据类型的语言,变量在使用之前无需申明类型,通常变量的值是被赋值的那个值的类型,因此可以任意动态修改。例如,在静态语言中,由声明语句所创建的代码实体是与声明语句中的符号名称绑定且无法二次修改的。而在动态语言中,一个符号名称与其所绑定的代码实体是可以修改的。

3、现有的面向静态语言的代码依赖分析技术,在遇到一条声明语句时会且仅会创建一个实体信息,其包括实体的符号名称和实体类型,且该实体的符号名称和实体类型被分别固定为该声明语句所体现的内容。该技术完全不支持对动态语言动态特性进行分析。在对使用动态语言编写本文档来自技高网...

【技术保护点】

1.一种程序代码分析方法,包括:

2.根据权利要求1所述的方法,其中,所述获取使用动态语言编写的程序代码中的多条声明语句对应的多个实体信息,包括:

3.根据权利要求1所述的方法,其中,对于所述多条声明语句中任意的声明语句,当该声明语句所声明的实体为具名实体时,该声明语句对应的实体信息中的符号名称为该声明语句包括的该具名实体的符号名称;当该声明语句所声明的实体为匿名实体时,该实体信息中的符号名称为通用于不同匿名实体的预设名称。

4.根据权利要求1所述的方法,其中,单个实体信息还包括实体类型,所述实体类型为以下中的任一项:变量、函数、类

5....

【技术特征摘要】

1.一种程序代码分析方法,包括:

2.根据权利要求1所述的方法,其中,所述获取使用动态语言编写的程序代码中的多条声明语句对应的多个实体信息,包括:

3.根据权利要求1所述的方法,其中,对于所述多条声明语句中任意的声明语句,当该声明语句所声明的实体为具名实体时,该声明语句对应的实体信息中的符号名称为该声明语句包括的该具名实体的符号名称;当该声明语句所声明的实体为匿名实体时,该实体信息中的符号名称为通用于不同匿名实体的预设名称。

4.根据权利要求1所述的方法,其中,单个实体信息还包括实体类型,所述实体类型为以下中的任一项:变量、函数、类。

5.根据权利要求1所述的方法,其中,所述确定所述程序代码中的各条符号引用表达式对应的代码依赖关系,包括:

6.根据权利要求5所述方法,其中,所述目标表...

【专利技术属性】
技术研发人员:晋武侠陈大为狄鹏
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1