当前位置: 首页 > 专利查询>南京大学专利>正文

一种基于静态程序分析的JavaScript函数参数不匹配检测方法技术

技术编号:25707955 阅读:50 留言:0更新日期:2020-09-23 02:55
本发明专利技术为一种基于静态程序分析与自然语言处理方法的JavaScript函数参数不匹配检测方法。首先为JavaScript项目中每个文件构造抽象语法树AST,遍历AST树并提取整个项目的定义函数和构造函数的程序相关信息;扫描分析整个项目的JavaScript文件,分别得到定义函数和调用函数的具体位置并构造项目的函数调用图;根据提取的注释信息,通过自然语言处理方法并结合概率推断参数的类型;根据提取的信息,分别对参数个数、参数命名、参数类型的不一致性进行检测,并给出项目中JavaScript函数参数不匹配的检测报告。

【技术实现步骤摘要】
一种基于静态程序分析的JavaScript函数参数不匹配检测方法
本专利技术属于计算机
,尤其是软件
本专利技术提出了一种基于静态程序分析的JavaScript函数参数不匹配检测方法,结合自然语言处理技术,该方法能够检测多种类型的JavaScript函数参数不匹配,包括参数个数不一致性、参数命名不一致性和参数类型不一致性。
技术介绍
随着Web应用的快速发展,JavaScript被广泛应用于客户端和服务端的项目中,这对JavaScript应用的稳定性和可靠性提出了很高要求。然而,JavaScript的弱类型(loosetype)和动态特性(dynamicnature)使得基于JavaScript的应用更易于出现错误。为了增强JavaScript应用的健壮性,研究人员提出了多种针对Web应用的测试技术,以帮助开发人员在短时间内检测出存在的错误。这些工作主要关注程序逻辑上的错误,对参数不一致性以及类型有关的错误研究不多。JavaScript的弱类型特性使得JavaScript容易出现类型相关错误,目前只有少数对Java本文档来自技高网...

【技术保护点】
1.本专利技术提出了一种基于静态程序分析和自然语言处理方法的JavaScript函数参数不匹配检测方法,该方法检测JavaScript函数参数的三种不一致性,即参数命名不一致性、参数个数不一致性和参数类型不一致性,从而报告项目中存在的函数参数不匹配情况,即先为JavaScript项目中每个文件构造抽象语法树AST,遍历AST树并提取整个项目的定义函数和构造函数的程序相关信息;扫描分析整个项目的JavaScript文件,分别得到定义函数和调用函数的具体位置并构造项目的函数调用图;根据提取的注释信息,通过自然语言处理方法并结合概率推断参数的类型;根据提取的信息,分别对参数个数、参数命名、参数类型的...

【技术特征摘要】
1.本发明提出了一种基于静态程序分析和自然语言处理方法的JavaScript函数参数不匹配检测方法,该方法检测JavaScript函数参数的三种不一致性,即参数命名不一致性、参数个数不一致性和参数类型不一致性,从而报告项目中存在的函数参数不匹配情况,即先为JavaScript项目中每个文件构造抽象语法树AST,遍历AST树并提取整个项目的定义函数和构造函数的程序相关信息;扫描分析整个项目的JavaScript文件,分别得到定义函数和调用函数的具体位置并构造项目的函数调用图;根据提取的注释信息,通过自然语言处理方法并结合概率推断参数的类型;根据提取的信息,分别对参数个数、参数命名、参数类型的不一致性进行检测,并给出项目中JavaScript函数参数不匹配的检测报告。


2.根据权利要求1所述的基于静态程序分析和自然语言处理方法的JavaScript函数参数不匹配检测方法,其特征包括以下步骤:
1)解析JavaScript文件的抽象语法树AST并遍历,提取定义函数和调用函数的信息;
2)构造函数调用图,并结合步骤1)得到带信息的函数定义-调用对;
3)对函数调用图中的函数进行函数类型推断,通过概率推断实现;
4)对定义函数和调用函数中参数个数、参数命名、参数类型的不一致性进行检测。


3.根据权利2所描述的基于静态程序分析和自然语言处理方法的JavaScript函数参数不匹配检测方法,其特征是步骤1)中的分析是基于抽象语法树进行的,即基于语法层面,通过esprima解析AST树并遍历,对于定义函数,本发明关注普通函数定义、函数表达式定义、类里的函数定义、赋值表达式和对象定义时的函数定义,提取这五类定义函数的信息;对于调用函数,本发明对于所有调用函数提取程序相关信息。


4.根据权利2所描述的基于静态程序分析和自然语言处理方法的JavaScript函数参数不匹配检测方法,其特征是在步骤2)中构造项目的函数调用图,本发明只关注自定义函数的调用图,分析项目并导出定义函数和调用函数的对应信息,对所有自定义函数编号,并给每个函数一个...

【专利技术属性】
技术研发人员:许蕾查春柳陈林徐宝文
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

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

1