CN111694570A - 一种基于静态程序分析的JavaScript函数参数不匹配检测方法 - Google Patents

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

Info

Publication number
CN111694570A
CN111694570A CN201910195658.5A CN201910195658A CN111694570A CN 111694570 A CN111694570 A CN 111694570A CN 201910195658 A CN201910195658 A CN 201910195658A CN 111694570 A CN111694570 A CN 111694570A
Authority
CN
China
Prior art keywords
function
parameter
parameters
inconsistency
type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910195658.5A
Other languages
English (en)
Inventor
许蕾
查春柳
陈林
徐宝文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CN201910195658.5A priority Critical patent/CN111694570A/zh
Publication of CN111694570A publication Critical patent/CN111694570A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Abstract

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

Description

一种基于静态程序分析的JavaScript函数参数不匹配检测 方法
技术领域
本发明属于计算机技术领域,尤其是软件技术领域。本发明提出了一种基于静态程序分析的JavaScript函数参数不匹配检测方法,结合自然语言处理技术,该方法能够检测多种类型的JavaScript函数参数不匹配,包括参数个数不一致性、参数命名不一致性和参数类型不一致性。
背景技术
随着Web应用的快速发展,JavaScript被广泛应用于客户端和服务端的项目中,这对JavaScript应用的稳定性和可靠性提出了很高要求。然而,JavaScript的弱类型(loosetype) 和动态特性(dynamic nature)使得基于JavaScript的应用更易于出现错误。
为了增强JavaScript应用的健壮性,研究人员提出了多种针对Web应用的测试技术,以帮助开发人员在短时间内检测出存在的错误。这些工作主要关注程序逻辑上的错误,对参数不一致性以及类型有关的错误研究不多。JavaScript的弱类型特性使得JavaScript容易出现类型相关错误,目前只有少数对JavaScript类型推断的研究,且这类研究针对文件中所有变量。少数研究者关注MVC(Model View Controller)模式存在的不一致性,通过代码的 AST(Abstract Syntax Tree)树推断可能存在的MVC项目不一致性。同时关注项目中参数不一致性以及类型不一致性的研究较少。一旦出现JavaScript函数参数不匹配的情况,可能会导致页面显示出错、页面操作无响应甚至程序崩溃等后果,严重影响用户体验、带来不同程度的损失。
静态程序分析是指在不运行程序的时候,通过构建程序的抽象语法树AST、控制流图和数据流图等,对程序进行分析并报告是否存在安全问题以及其可靠性和可维护性等情况。针对JavaScript的静态分析工具目前主要有JS-WALA、SAFE等。本发明通过静态分析,构建AST、函数调用图等,以此获取函数参数的相关信息。
自然语言处理方法是人工智能的一个方向,旨在研究人与计算机通过自然语言顺利通讯的各种方法。对于自然语言的处理,除了涉及语言领域还要关注如何实现与计算机系统的通信。常用的自然语言处理模型有N-gram模型、概率图模型、生成模型与判别模型、贝叶斯网络、马尔科夫链与隐马尔科夫模型等。本发明需要推断参数的类型信息,将参数命名、提取的注释作为概率化表示的一部分,由于注释部分是由自然语言组成的,为了推断参数与注释之间的类型关系,本发明使用N-gram模型来推断参数的类型信息。
目前缺少对JavaScript函数实参与形参不匹配性的检测工具。本发明的主要目标是提出一种方法来检测JavaScript项目中函数调用以及函数定义之间存在的不一致性,该方法会在运行前对程序源码进行扫描分析,通过静态分析以及类型推断等操作获得参数的类型以及其他相关信息,从而报告出形参和实参可能存在的不一致性,可以减少实际运行时出现的函数参数不匹配错误。
发明内容
本发明的主要内容是提出一种基于静态程序分析的JavaScript函数参数不匹配检测方法,结合自然语言处理方法,该方法可以检测JavaScript程序中函数形参与实参的不一致性。本发明将函数参数不一致性划分成三个类别:参数个数、参数命名和参数类型。首先,对程序进行静态分析,以提取定义函数信息和调用函数信息。其次,构造项目中函数的调用图,得到定义-调用对(def-use pair)。然后,对定义函数和调用函数分别推断出其参数对应的类型,通过静态程序分析和自然语言处理方法对收集到的信息进行函数参数类型推断。最后对参数个数、参数命名和参数类型这三种不一致性情况分别进行判断、识别,从而报告JavaScript项目中存在的函数参数不匹配情况。
本发明的内容详细表述如下:
1.提取函数信息。分析的第一步是提取项目中函数定义和函数调用时的信息。对调用函数,需要提取如下信息:文件名、调用函数名、所在行数、函数参数变量名和所在函数前的注释。对定义函数,需要提取如下信息:文件名、定义函数名、所在行区间、函数参数名和定义函数前的注释信息。首先,构建每个文件的AST树并遍历,根据树节点的类型判断是定义函数节点、调用函数节点还是其他类型节点。对于定义函数节点,则根据节点的属性提取上述信息,本发明根据JavaScript语言特征对定义函数节点进行分类,得到五类定义函数节点类型,然后根据不同类型的节点属性分别设计并提取调用函数信息。对于调用函数节点,只有一种节点类型,根据节点属性提取定义函数信息。
2.构造定义-调用对。提取出函数的基本信息后,需要构造整个项目调用图CG(Call-Graph),本发明根据构造的函数调用图和步骤1获得的函数信息得到定义-调用对以及每一对所包含的信息。函数调用图是指由项目中所有调用函数和定义函数组成的图,图中每一条边代表一对定义-调用对,本发明通过Understand分析工具对整个项目进行分析,该工具在分析过程中给每一个调用函数和定义函数单独的编号id,因此分析后通过脚本提取出项目中调用函数和定义函数列表后,直接通过id进行匹配定义调用对,从而得到整个项目调用图。对于得到的项目调用图,结合步骤1得到的函数信息,通过文件以及代码行等内容进行匹配,从而得到带信息的函数调用图。
3.推断函数参数的类型。根据提取的注释以及函数代码片段的AST树推断出定义函数和调用函数的参数类型。对于定义函数,首先对注释进行预处理,然后通过自然语言处理方法N-gram对每个参数进行类型推断,同时将参数命名作为推断类型的一部分,根据概率综合得到参数的类型;对于调用函数,首先构造所在函数的AST树,并构建数据流以及控制流等信息,通过静态分析提取出函数参数的切片信息,然后根据切片信息路径上的操作进行类型推断,并对切片顶端的变量结合所在函数的注释信息进行类型推断,同时也将命名作为类型推断的一部分,综合得到参数的类型。
4.不一致性判断。通过对参数个数、参数命名和参数类型三种类型的不一致性进行检测,报告出项目中可能存在的不一致性。参数个数不一致性的检测是关注定义时必须传入的参数是否传入,若缺少必选项,则认为个数存在不一致性;参数命名不一致性关注的是形参与实参命名之间的相似性,采用相似性算法来判断实参与形参的相似性,并提出在相似性大于50%时,认为具有一致性,反之存在不一致性;参数类型包括基础类型和对象类型两类,基础类型是指JavaScript语言中规定的基本类型,包括number、string、boolean、object、array、function和optional等,对象类型是指由基础类型object所实例化的对象类型,特指开发者自定义的对象类型,本发明对基本类型和对象类型分别进行不一致性检测。
附图说明
图1为通过静态分析与自然语言处理方法相结合进行函数参数类型不一致性检测的框架。图示具体过程如下:1)将项目代码作为输入,通过对AST树进行分析提取定义函数和调用函数的程序相关信息,构造项目的函数调用图,得到函数定义-调用对;2)对于定义函数,对抽取的注释进行自然语言预处理,包括分词、词语拆分等,然后根据自然语言处理方法推测参数可能的类型,并结合参数命名信息来推断概率类型。对于调用函数,基于 AST树进行分析并构建数据流和控制流,获得参数变量的切片信息,然后将切片的顶端通过自然语言处理以及变量名来推断类型,并结合变量的数据传递来推测参数的类型,最后将参数变量命名作为推断参数类型的一部分,并将以上几个部分通过概率模型推测最有可能的类型列表。若不能推断出函数参数类型,则将其设为任意类型;3)进行不一致性推断,对于函数个数不一致性,分别统计实参和形参必传参数的个数,若两者不一致,则认为存在不一致性;对于参数命名相似性,通过不同相似性算法计算实参和形参命名的相似性并取平均值为其相似度,若相似度小于50%,则认为存在不一致性;对于参数类型,将其分为基础类型和对象类型,基础类型包括number、string、boolean、object、array、function 和optional,对象类型包含所有自定义类实例化得到的对象类型,本发明将分别检测并统计其不一致性。
具体实施方式
本发明具体包括以下步骤:
1)将待分析的项目导入,提取项目中定义函数和调用函数相关的信息。通过构建抽象语法树、遍历抽象语法树并从语法层面进行分析得到这些信息。
2)构建整个项目自定义函数的函数调用图,然后根据函数调用图获得定义-调用对,并结合步骤1)得到的函数调用以及函数定义的相关信息,得到每一对带信息的定义-调用对。
3)通过静态程序分析、自然语言处理和概率模型相结合的方法推断定义函数和调用函数的参数类型。对于定义函数,通过自然语言处理方法对参数进行类型推断,同时将参数命名作为一部分,进行概率类型推断。对于调用函数,则需要构建数据流和控制流,从而提取参数变量相关的切片,根据提取切片的程序操作、切片顶端注释信息和变量名作为概率推断的基础信息,从而推断出变量的类型。
4)对通过以上步骤得到的函数定义-调用对进行不一致性分析,包括三类不一致性,参数个数不一致性、参数命名不一致性和参数类型不一致性,最终报告可能存在的不一致性。
步骤1)中的分析是基于抽象语法树进行的,也即基于语法层面。对于定义函数,本发明关注函数的五种定义,包括普通函数定义、函数表达式定义、类里的函数定义、赋值表达式和对象定义时的函数定义,对这五类定义函数进行信息提取。对于调用函数,本发明对于所有调用函数提取程序相关的信息。在提取函数信息时,只关注自定义函数的信息提取,会忽略原生函数调用。
首先读取JavaScript文件内容,通过esprima进行解析生成AST树,然后遍历AST树并根据节点的类型分别对定义函数和调用函数进行信息提取。步骤1)具体方法中第12-15行表示定义函数时存在的情况,省略号代表第10-11行获取定义函数信息的操作。第16-18行则代表调用函数时的操作。
步骤1)具体方法如下:
Figure BSA0000180327520000041
Figure BSA0000180327520000051
步骤2)构造项目的函数调用图,本发明只关注自定义函数的调用图,通过Understand 工具对项目进行分析,并导出定义函数和调用函数的对应信息,该工具会对所有自定义函数进行编号,并给每个函数一个唯一的编号,因此,对于调用函数,根据调用的函数编号即可构造对应指向函数,从而构造项目的函数调用图,得到所有的定义-调用对。根据步骤 1)提取的函数信息,结合步骤2)得到的定义-调用对,可以得到带有相关信息的函数定义 -调用对。
步骤2)具体方法如下:
Figure BSA0000180327520000052
Figure BSA0000180327520000061
步骤3)通过静态分析和自然语言处理方法相结合来对步骤2)提取的带有相关信息的函数定义-调用对进行函数参数类型推断。
对于定义函数,本发明主要是根据收集的定义前的注释信息来推断,本发明采用N-gram 方法来对每一个参数类型进行推断。
对于定义函数,本发明主要根据收集的定义前的注释信息来推断,本发明采用N-gram 方法来对每一个参数类型进行推断,得到部分可能参数类型,然后将变量命名加入为推断类型的一部分,从而进行概率推断得到概率类型。
对于调用函数,本发明采用概率模型对调用时传入的每个参数进行推断,首先,将注释、命名分别作为概率模型的一部分,本发明通过构建调用函数所在函数的抽象语法树,并构造程序的数据流和控制流,然后对所需推断类型的参数进行切片分析,提取相关的切片,并将切片的路径作为参数类型推断的一部分,接下来对提取的注释信息提取切片最开始一条的变量类型,该步骤也通过N-gram方法实现。然后对于没有注释信息的函数参数,本发明通过将命名作为推断参数类型的一部分,通过构建一个大数据模型,给出模型中变量名可能类型的概率,并结合调用函数上下文进行推断。将注释推断和命名推断得到的可能类型加权得到最终的某个类型的概率,选取概率最大的作为其参数类型。本发明将会产生以下三种概率约束。
(1)注释约束 本发明根据注释中的自然语言推断变量可能的类型,由于大部分注释中包含了函数功能的说明及参数类型信息,可以将注释作为一种概率约束;
(2)命名约束 开发时程序员通常按照规范对变量命名,本发明认为变量的命名一般含有明确含义,可以将命名也作为一种概率约束;
(3)数据流约束 通过数据流的传递情况将变量之间的传递关系作为一个约束,如赋值语句,将语句左边变量和右边变量视为等价,其概率值为1;而分支语句中,其概率值取1/分支数。
根据以上约束得到约束概率图,通过联乘算法进行推断,直到收敛得到最终的概率取值结果。
步骤3)调用函数参数类型推断具体方法如下:
Figure BSA0000180327520000071
步骤4)通过步骤3)推断的结果进行不一致性分析,有参数个数不一致性、参数命名不一致性和参数类型不一致性。
参数个数不一致性通过计算形参和实参的个数来判断,若两者必传个数不一致,则将其认为存在参数个数不一致。
参数命名不一致性通过计算形参和实参命名的相似性,通过多种相似性算法,如编辑距离等,来计算两者的相似度,然后取平均值,若最后相似度小于50%,则认为存在不一致性。因为根据调查发现,大量存在不一致性的情况都来自于小于50%的情况。
参数类型不一致性通过对每对形参和实参进行比较,看是否存在不一致性,本发明将其分为两类类型,分为基础类型和对象类型,基础类型包括number、string、boolean、object、 array、function和optional,对象类型包含所有通过自定义类实例化该类得到的类型,本发明将分别统计其不一致性。
步骤4)具体方法如下:
Figure BSA0000180327520000081

Claims (6)

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)中构造项目的函数调用图,本发明只关注自定义函数的调用图,分析项目并导出定义函数和调用函数的对应信息,对所有自定义函数编号,并给每个函数一个唯一编号,根据调用的函数编号即可构造对应指向函数,从而构造项目的函数调用图,得到所有的定义-调用对,即根据步骤1)提取的函数信息,结合步骤2)得到的定义-调用对,可以得到带有相关信息的函数定义-调用对。
5.根据权利2所描述的基于静态程序分析和自然语言处理方法的JavaScript函数参数不匹配检测方法,其特征是在步骤3)中对于调用函数,本发明采用概率模型对调用时传入的每个参数进行类型推断,本发明包括以下三种概率约束:
(1)注释约束本发明根据注释中的自然语言推断变量可能的类型,由于大部分注释中包含了函数功能的说明及参数类型信息,可以将注释作为一种概率约束;
(2)命名约束开发时程序员通常按照规范对变量命名,本发明认为变量的命名一般含有明确含义,可以将命名也作为一种概率约束;
(3)数据流约束通过数据流的传递情况将变量之间的传递关系作为一个约束,如赋值语句,将语句左边变量和右边变量视为等价,其概率值为1,而分支语句中,其概率值取1/分支数;
根据以上约束得到约束概率图,通过联乘算法进行推断,直到收敛得到最终的概率取值结果。
6.根据权利2所描述的基于静态程序分析和自然语言处理方法的JavaScript函数参数不匹配检测方法,其特征是在步骤4)中通过步骤3)推断的结果进行不一致性分析,有参数个数不一致性、参数命名不一致性和参数类型不一致性:
(1)参数个数不一致性通过计算形参和实参的个数来判断,若两者必传个数不一致,则认为存在参数个数不一致;
(2)参数命名不一致性通过计算形参和实参命名的相似性,通过多种相似性算法,如编辑距离等,来计算两者的相似度,然后取平均值,若最后相似度小于50%,则认为存在参数命名不一致;
(3)参数类型不一致性通过比较每对形参和实参,看是否存在不一致性,本发明将其分为两类类型,分为基础类型和对象类型,基础类型包括number、string、boolean、object、array、function和optional,对象类型包含所有通过自定义类实例化该类得到的类型,本发明将分别统计其不一致性。
CN201910195658.5A 2019-03-13 2019-03-13 一种基于静态程序分析的JavaScript函数参数不匹配检测方法 Pending CN111694570A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910195658.5A CN111694570A (zh) 2019-03-13 2019-03-13 一种基于静态程序分析的JavaScript函数参数不匹配检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910195658.5A CN111694570A (zh) 2019-03-13 2019-03-13 一种基于静态程序分析的JavaScript函数参数不匹配检测方法

Publications (1)

Publication Number Publication Date
CN111694570A true CN111694570A (zh) 2020-09-22

Family

ID=72475358

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910195658.5A Pending CN111694570A (zh) 2019-03-13 2019-03-13 一种基于静态程序分析的JavaScript函数参数不匹配检测方法

Country Status (1)

Country Link
CN (1) CN111694570A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112433754A (zh) * 2021-01-13 2021-03-02 南京大学 一种基于程序分析的Java函数注释自动生成方法
CN112989348A (zh) * 2021-04-15 2021-06-18 中国电子信息产业集团有限公司第六研究所 攻击检测方法、模型训练方法、装置、服务器及存储介质
WO2023024714A1 (en) * 2021-08-24 2023-03-02 Xfusion Digital Technologies Co., Ltd. Static analysis method, apparatus, and device, and computer-readable storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339313A (zh) * 2016-08-12 2017-01-18 南京航空航天大学 一种Java API程序异常与文档的描述不一致自动检测方法
CN106547520A (zh) * 2015-09-16 2017-03-29 腾讯科技(深圳)有限公司 一种代码路径分析方法及装置
CN106970820A (zh) * 2017-04-26 2017-07-21 腾讯科技(深圳)有限公司 代码存储方法及代码存储装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547520A (zh) * 2015-09-16 2017-03-29 腾讯科技(深圳)有限公司 一种代码路径分析方法及装置
CN106339313A (zh) * 2016-08-12 2017-01-18 南京航空航天大学 一种Java API程序异常与文档的描述不一致自动检测方法
CN106970820A (zh) * 2017-04-26 2017-07-21 腾讯科技(深圳)有限公司 代码存储方法及代码存储装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BRIAN HACKETT 等: "《Fast and precise hybrid type inference for JavaScript》" *
VINCENT J.HELLENDOORN: "《Deep Learning Type Inference》" *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112433754A (zh) * 2021-01-13 2021-03-02 南京大学 一种基于程序分析的Java函数注释自动生成方法
CN112989348A (zh) * 2021-04-15 2021-06-18 中国电子信息产业集团有限公司第六研究所 攻击检测方法、模型训练方法、装置、服务器及存储介质
WO2023024714A1 (en) * 2021-08-24 2023-03-02 Xfusion Digital Technologies Co., Ltd. Static analysis method, apparatus, and device, and computer-readable storage medium

Similar Documents

Publication Publication Date Title
US7926026B2 (en) Graphical analysis to detect process object anomalies
EP2863309B1 (en) Contextual graph matching based anomaly detection
US8595153B2 (en) Exploring data using multiple machine-learning models
Antoniol et al. Design‐code traceability for object‐oriented systems
CN111694570A (zh) 一种基于静态程序分析的JavaScript函数参数不匹配检测方法
US20050246353A1 (en) Automated transformation of unstructured data
Liu et al. Identifying renaming opportunities by expanding conducted rename refactorings
CN113326244A (zh) 一种基于日志事件图和关联关系挖掘的异常检测方法
Oliveira et al. An efficient similarity-based approach for comparing XML documents
CN109783638A (zh) 一种基于半监督学习的用户评论聚类方法
Stavropoulou et al. Case study on which relations to use for clustering-based software architecture recovery
CN113434418A (zh) 知识驱动的软件缺陷检测与分析方法及系统
CN114036531A (zh) 一种基于多尺度代码度量的软件安全漏洞检测方法
Zhang et al. Duo: Differential fuzzing for deep learning operators
López et al. Towards the characterization of realistic model generators using graph neural networks
CN116578980A (zh) 基于神经网络的代码分析方法及其装置、电子设备
Endres et al. Synthetic data generation: a comparative study
CN113127933B (zh) 一种基于图匹配网络的智能合约庞氏骗局检测方法及系统
Gonzalez et al. Almost rerere: Learning to resolve conflicts in distributed projects
Li et al. UTANGO: untangling commits with context-aware, graph-based, code change clustering learning model
Carvalho et al. DMOSS: Open source software documentation assessment
Zeng et al. An efficient vulnerability extrapolation using similarity of graph kernel of pdgs
Kommrusch Machine learning for computer aided programming: From stochastic program repair to verifiable program equivalence
CN113392977A (zh) 用于对建模错误进行定位的方法、装置以及存储介质
CN116502140B (zh) 一种基于控制流图相似性的加密算法识别方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination