CN110244953A - Java程序的区间分析方法及装置 - Google Patents

Java程序的区间分析方法及装置 Download PDF

Info

Publication number
CN110244953A
CN110244953A CN201910422882.3A CN201910422882A CN110244953A CN 110244953 A CN110244953 A CN 110244953A CN 201910422882 A CN201910422882 A CN 201910422882A CN 110244953 A CN110244953 A CN 110244953A
Authority
CN
China
Prior art keywords
node
value
currently calculated
block information
dependency graph
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
CN201910422882.3A
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.)
Peking University
National Computer Network and Information Security Management Center
Original Assignee
Peking University
National Computer Network and Information Security Management Center
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 Peking University, National Computer Network and Information Security Management Center filed Critical Peking University
Priority to CN201910422882.3A priority Critical patent/CN110244953A/zh
Publication of CN110244953A publication Critical patent/CN110244953A/zh
Pending legal-status Critical Current

Links

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
    • G06F8/433Dependency analysis; Data or control flow analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供一种Java程序的区间分析方法和装置,其中方法包括:生成Java程序的值依赖图,值依赖图的节点为Java程序中的常量和变量,值依赖图的边为节点间的依赖关系,每条边还保存有前驱节点到后继节点的守卫值条件,从值依赖图的起始节点开始逐个计算区间信息:对于当前计算的节点,将前驱节点的区间信息的并集采用当前计算的节点与前驱节点之间的守卫值条件进行过滤,获得当前计算的节点的区间取值,将区间取值经对应的转换函数进行转换,作为当前计算的节点的区间信息。本发明实施例解决了现有方法对判断语句处理上精度不足的弊端。

Description

Java程序的区间分析方法及装置
技术领域
本发明涉及缓冲区溢出检测技术领域,更具体地,涉及Java程序的区间分析。
背景技术
控制流图(Control Flow Graph,CFG):为有向图,是一个过程或程序的抽象表现,在静态分析过程中被建立并维护为一个抽象数据结构。控制流图表示一个过程内所有基本块的可能执行流向,即一个程序执行过程中可能遍历的所有路径。建立程序控制流图使得程序抽象结构更为规范和可读,为后续进行数据流分析提供了极大的便利
控制流图可由解析抽象语法树(Abstract Syntax Tree,AST)得到,可以看作是比AST更细粒度的程序中间表示。数据流分析指在控制流图的基础上通过迭代分析得到感兴趣的数据流结果,包括可达定义分析、活跃变量分析、可用表达式分析等。这些分析是建立在划分好基本块和流图的基础上,通过在控制流图中的迭代、传递和合并完成对流图中不动点状态的计算。
区间分析是计算程序变量可能取值范围的数据流分析方法。现有区间分析的计算方式为:从源程序开始,按照上述流程生成待分析程序的控制流图,在控制流图中进行数据流迭代计算。从程序入口开始,在控制流图中每个节点内进行区间计算,每个节点存储程序运行至当前节点时所有变量的区间信息,在控制流图内反复运算,直至整个图中的区间信息达到不动点状态。
现有区间分析方法存在以下不足:
1、运行时间效率差。在控制流图中进行区间分析计算会进行大量无意义的遍历过程,与待计算变量无关的节点也需要在数据流分析中经过。
2、内存占用量大。现有区间分析需要在每个控制流图节点内存储从头至该点所有变量的区间信息,在数据存储上带来大量冗余。
3、分析精度不足。在控制流图上进行的区间分析难以处理程序中的if判断语句,不能在所有的程序执行路径上对变量范围进行应有的限制,这导致现有区间分析应用在复杂程序上效果不佳。
发明内容
本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的Java程序的区间分析方法及装置。
第一个方面,本发明实施例提供一种Java程序的区间分析方法,包括:
生成Java程序的值依赖图,所述值依赖图的节点为Java程序中的常量和变量,值依赖图的边为节点间的依赖关系,每条边还保存有前驱节点到后继节点的守卫值条件;
从所述值依赖图的起始节点开始逐个计算区间信息:对于当前计算的节点,将前驱节点的区间信息的并集采用所述当前计算的节点与前驱节点之间的守卫值条件进行过滤,获得当前计算的节点的区间取值,将所述区间取值经对应的转换函数进行转换,作为当前计算的节点的区间信息。
优选地,将所述区间取值经对应的转换函数进行转换,具体为:
若当前计算的节点对应Java程序中的赋值语句,且所述赋值语句为表达式形式,则根据所述当前计算的节点的区间取值对表达式的等式右边进行模拟算术运算,获得当前计算的节点的区间信息;
若当前计算的节点对应Java程序中的赋值语句,且所述赋值语句为函数形式,则从所述值依赖图中寻找前驱节点对应的ReturnNode节点,将所述ReturnNode节点的区间信息作为所述当前计算的节点的区间信息。
优选地,将所述区间取值经对应的转换函数进行转换,具体为:若当前计算的节点对应函数调用语句中的参数,则将当前函数调用参数的区间信息作为当前计算的节点的区间信息。
优选地,将所述区间取值经对应的转换函数进行转换,具体为:若当前计算的节点对应声明中的参数定义,则将所有ActualParam的区间信息取并集作为当前计算的节点的区间信息。
优选地,将所述区间取值经对应的转换函数进行转换,具体为:若当前计算的节点对应函数返回语句,则对函数的等式右边进行模拟算术运算,获得当前计算的节点的区间信息。
优选地,将所述区间取值经对应的转换函数进行转换,具体为:若当前计算的节点对应Java程序中的if判断语句,则直接将所述区间取值作为区间信息。
优选地,所述从所述值依赖图的起始节点开始逐个计算区间信息,还包括:将判断语句引入的区间信息加入下一节点的区间信息中。
第二个方面,本发明实施例提供一种Java程序的区间分析装置,包括:
值依赖图生成模块,用于生成Java程序的值依赖图,所述值依赖图的节点为Java程序中的常量和变量,值依赖图的边为节点间的依赖关系,每条边还保存有前驱节点到后继节点的守卫值条件;
区间信息生成模块,用于从所述值依赖图的起始节点开始逐个计算区间信息:对于当前计算的节点,将前驱节点的区间信息的并集采用所述当前计算的节点与前驱节点之间的守卫值条件进行过滤,获得当前计算的节点的区间取值,将所述区间取值经对应的转换函数进行转换,作为当前计算的节点的区间信息。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明提出的Java程序的区间分析方法及装置,可以在较小的内存占用、高时间效率下对Java程序进行保证精度的分析,为缓冲区溢出检测提供可置信的信息。同现有技术相比,本方法选择从值依赖图计算,这省去了原来在程序控制流图中的无效迭代过程,只关注值在程序运行过程中的变化情况,提高了运行效率。同时,在值依赖图上的进行计算可使计算中每个节点只存储与其相关的区间信息内容,最大程度减少了内存占用量。本技术对值依赖图中计算的守卫值进行了特殊计算,完整利用了判断语句引入的变量区间信息变化,解决了现有方法对判断语句处理上精度不足的弊端。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的Java程序的区间分析方法的流程示意图;
图2为本发明实施例的代码片段的值依赖图;
图3为本发明实施例的代码片段的区间分析结果示意图;
图4为本发明实施例提供的Java程序的区间分析装置的结构示意图;
图5为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的Java程序的区间分析方法的流程示意图,如图1所示,该方法包括S101和S102,具体地:
S101、生成Java程序的值依赖图,所述值依赖图的节点为Java程序中的常量和变量,值依赖图的边为节点间的依赖关系,每条边还保存有前驱节点到后继节点的守卫值条件。
需要说明的是,值依赖图(Value Dependence Graph,VDG):描述程序内各变量间的数值传递关系。值依赖图以程序中的常量和变量为节点,依赖关系为边构建而成。在每条边,即依赖关系之上,保存有前驱节点到后继节点的守卫值条件,只有在守卫值条件得到满足时,数值才会在此条依赖边上进行传递。
现以一个具体的Java程序的代码片段对本发明实施例的区间分析方法进行演示,该代码片段为:
图2为本发明实施例的代码片段的值依赖图,如图2所示,矩形方框表示值传播节点,椭圆方框表示判断节点(SwitchNode),箭头表示程序中值传递的依赖关系(Dependence),即值依赖图中的边。图中箭头旁圆标注的语句为边上的守卫值内容。
S102、从所述值依赖图的起始节点开始逐个计算区间信息:对于当前计算的节点,将前驱节点的区间信息的并集采用所述当前计算的节点与前驱节点之间的守卫值条件进行过滤,获得当前计算的节点的区间取值,将所述区间取值经对应的转换函数进行转换,作为当前计算的节点的区间信息。
需要说明的是,步骤S102可通过一下公式表示:
OutMap=Trans(InMap)
每一节点的区间值(InMap)来自于前驱节点的区间信息(OutMap)的并集,这些区间信息经过守卫值信息(GuardMap)的过滤,即得区间值,收集完成后的区间值经过转换函数(Trans)转换,成为改建的区间信息,也成为后继节点的输入。
本方法可以在较小的内存占用、高时间效率下对Java程序进行保证精度的分析,为缓冲区溢出检测提供可置信的信息。
需要说明的是,变量在值依赖图中的每个节点区间取值范围有不同的变化方式,因此针对不同类型的节点设计不同的转换函数。每个转换函数根据输入的区间取值InMap进行转换计算,输出包含当前节点区间信息的OutMap。
在上述各实施例的基础上,将所述区间取值经对应的转换函数进行转换,具体为:
若当前计算的节点对应Java程序中的赋值语句,且所述赋值语句为表达式形式(例如:a=b+c+1),则根据所述当前计算的节点的区间取值对表达式的等式右边进行模拟算术运算,获得当前计算的节点的区间信息;
若当前计算的节点对应Java程序中的赋值语句,且所述赋值语句为函数形式(例如:a=f(b)),则从所述值依赖图中寻找前驱节点对应的ReturnNode节点,将所述ReturnNode节点的区间信息作为所述当前计算的节点的区间信息。
若当前计算的节点对应函数调用语句中的参数,则将当前函数调用参数的区间信息作为当前计算的节点的区间信息。例如示例中的arg@_t_1=fun(arg)“”。函数调用时首先需要将参数从调用者函数传入被调用函数的栈中,在值依赖图中的表示应为直接赋值。该节点转换函数的操作为从InMap中找到当前函数调用参数的区间信息,存入OutMap中。
若当前计算的节点对应声明中的参数定义,则将所有ActualParam的区间信息取并集作为当前计算的节点的区间信息。例如示例中的“fun(...i...)”。函数被调用时,参数由调用者传入,在值依赖图中表示为FormalParam是Actualparam的直接后继。一个函数在程序中可能多次被调用,这里考虑到效率问题,不进行上下文敏感的数据流分析,转换函数将所有ActualParam的区间信息取并集存入OutMap。
若当前计算的节点对应函数返回语句,则对函数的等式右边进行模拟算术运算,获得当前计算的节点的区间信息。例如示例中的“return j”,类同赋值节点AssignNode的右值。在此转换函数将进行和赋值节点内相同的右值计算方式,将计算出的返回值区间信息存入OutMap中。
若当前计算的节点对应Java程序中的if判断语句,则直接将所述区间取值作为区间信息。例如示例中的“if(i>0)”。判断语句不会改变变量的值(判断内的赋值“(a=1)==1”或自增减“i++”会在SwitchNode前生成AssignNode处理),无需在SwitchNode处使用转换函数进行转换。
同时,判断语句会引入额外的区间范围限制,如实例程序中判断语句“if(i>0)”可提供区间信息“i:(0,]”,这一区间信息将被计算并缓存在SwitchNode的GuardMap中。
在上述各实施例的基础上,作为一种可选实施例,所述从所述值依赖图的起始节点开始逐个计算区间信息,还包括:将判断语句引入的区间信息加入下一节点的区间信息中。
需要说明的是,SwitchNode内的判断信息会在构建VDG时转换为守卫值,添加到对应的依赖关系(VDG中的边)上。添加守卫值信息时,需要将判断语句引入的区间信息加入下一节点。如果当前节点已有的区间结果同守卫值信息冲突,这说明当前路径实际上不可走通,这一节点的计算结果将不再向下传递。
一个SwitchNode产生的守卫值会被添加到多个路径(至少True或False两条路径),添加守卫值区间信息则需要从对应的SwitchNode读取,避免重复计算而效率低下。
图3为本发明实施例的代码片段的区间分析结果示意图,如图3所示,每个值传播节点内记录了相关变量的区间结果,存储于OutMap中;判断节点SwitchNode内存储了守卫值区间信息GuardMap。
图4为本发明实施例提供的Java程序的区间分析装置的结构示意图,如图4所示,该Java程序的区间分析装置包括:值依赖图生成模块201和区间信息生成模块202,其中:
值依赖图生成模块201,用于生成Java程序的值依赖图,所述值依赖图的节点为Java程序中的常量和变量,值依赖图的边为节点间的依赖关系,每条边还保存有前驱节点到后继节点的守卫值条件;
区间信息生成模块202,用于从所述值依赖图的起始节点开始逐个计算区间信息:对于当前计算的节点,将前驱节点的区间信息的并集采用所述当前计算的节点与前驱节点之间的守卫值条件进行过滤,获得当前计算的节点的区间取值,将所述区间取值经对应的转换函数进行转换,作为当前计算的节点的区间信息。
本发明实施例提供的Java程序的区间分析装置,具体执行上述各Java程序的区间分析方法实施例流程,具体请详见上述各Java程序的区间分析方法实施例的内容,在此不再赘述。本发明提出的区间分析方法可以在较小的内存占用、高时间效率下对Java程序进行保证精度的分析,为缓冲区溢出检测提供可置信的信息。同现有技术相比,本方法选择从值依赖图计算,这省去了原来在程序控制流图中的无效迭代过程,只关注值在程序运行过程中的变化情况,提高了运行效率。同时,在值依赖图上的进行计算可使计算中每个节点只存储与其相关的区间信息内容,最大程度减少了内存占用量。本技术对值依赖图中计算的守卫值进行了特殊计算,完整利用了判断语句引入的变量区间信息变化,解决了现有方法对判断语句处理上精度不足的弊端。
图5为本发明实施例提供的电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储在存储器330上并可在处理器310上运行的计算机程序,以执行上述各实施例提供的Java程序的区间分析方法,例如包括:生成Java程序的值依赖图,所述值依赖图的节点为Java程序中的常量和变量,值依赖图的边为节点间的依赖关系,每条边还保存有前驱节点到后继节点的守卫值条件,从所述值依赖图的起始节点开始逐个计算区间信息:对于当前计算的节点,将前驱节点的区间信息的并集采用所述当前计算的节点与前驱节点之间的守卫值条件进行过滤,获得当前计算的节点的区间取值,将所述区间取值经对应的转换函数进行转换,作为当前计算的节点的区间信息。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的Java程序的区间分析方法,例如包括:生成Java程序的值依赖图,所述值依赖图的节点为Java程序中的常量和变量,值依赖图的边为节点间的依赖关系,每条边还保存有前驱节点到后继节点的守卫值条件,从所述值依赖图的起始节点开始逐个计算区间信息:对于当前计算的节点,将前驱节点的区间信息的并集采用所述当前计算的节点与前驱节点之间的守卫值条件进行过滤,获得当前计算的节点的区间取值,将所述区间取值经对应的转换函数进行转换,作为当前计算的节点的区间信息。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种Java程序的区间分析方法,其特征在于,包括:
生成Java程序的值依赖图,所述值依赖图的节点为Java程序中的常量和变量,值依赖图的边为节点间的依赖关系,每条边还保存有前驱节点到后继节点的守卫值条件;
从所述值依赖图的起始节点开始逐个计算区间信息:对于当前计算的节点,将前驱节点的区间信息的并集采用所述当前计算的节点与前驱节点之间的守卫值条件进行过滤,获得当前计算的节点的区间取值,将所述区间取值经对应的转换函数进行转换,作为当前计算的节点的区间信息。
2.根据权利要求1所述的区间分析方法,其特征在于,所述将所述区间取值经对应的转换函数进行转换,具体为:
若当前计算的节点对应Java程序中的赋值语句,且所述赋值语句为表达式形式,则根据所述当前计算的节点的区间取值对表达式的等式右边进行模拟算术运算,获得当前计算的节点的区间信息;
若当前计算的节点对应Java程序中的赋值语句,且所述赋值语句为函数形式,则从所述值依赖图中寻找前驱节点对应的ReturnNode节点,将所述ReturnNode节点的区间信息作为所述当前计算的节点的区间信息。
3.根据权利要求1所述的区间分析方法,其特征在于,所述将所述区间取值经对应的转换函数进行转换,具体为:
若当前计算的节点对应函数调用语句中的参数,则将当前函数调用参数的区间信息作为当前计算的节点的区间信息。
4.根据权利要求1所述的区间分析方法,其特征在于,所述将所述区间取值经对应的转换函数进行转换,具体为:
若当前计算的节点对应声明中的参数定义,则将所有ActualParam的区间信息取并集作为当前计算的节点的区间信息。
5.根据权利要求1所述的区间分析方法,其特征在于,所述将所述区间取值经对应的转换函数进行转换,具体为:
若当前计算的节点对应函数返回语句,则对函数的等式右边进行模拟算术运算,获得当前计算的节点的区间信息。
6.根据权利要求1所述的区间分析方法,其特征在于,所述将所述区间取值经对应的转换函数进行转换,具体为:
若当前计算的节点对应Java程序中的if判断语句,则直接将所述区间取值作为区间信息。
7.根据权利要求1所述的区间分析方法,其特征在于,所述从所述值依赖图的起始节点开始逐个计算区间信息,还包括:
将判断语句引入的区间信息加入下一节点的区间信息中。
8.一种Java程序的区间分析装置,其特征在于,包括:
值依赖图生成模块,用于生成Java程序的值依赖图,所述值依赖图的节点为Java程序中的常量和变量,值依赖图的边为节点间的依赖关系,每条边还保存有前驱节点到后继节点的守卫值条件;
区间信息生成模块,用于从所述值依赖图的起始节点开始逐个计算区间信息:对于当前计算的节点,将前驱节点的区间信息的并集采用所述当前计算的节点与前驱节点之间的守卫值条件进行过滤,获得当前计算的节点的区间取值,将所述区间取值经对应的转换函数进行转换,作为当前计算的节点的区间信息。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述Java程序的区间分析方法的步骤。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7中任意一项所述的Java程序的区间分析方法。
CN201910422882.3A 2019-05-21 2019-05-21 Java程序的区间分析方法及装置 Pending CN110244953A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910422882.3A CN110244953A (zh) 2019-05-21 2019-05-21 Java程序的区间分析方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910422882.3A CN110244953A (zh) 2019-05-21 2019-05-21 Java程序的区间分析方法及装置

Publications (1)

Publication Number Publication Date
CN110244953A true CN110244953A (zh) 2019-09-17

Family

ID=67884671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910422882.3A Pending CN110244953A (zh) 2019-05-21 2019-05-21 Java程序的区间分析方法及装置

Country Status (1)

Country Link
CN (1) CN110244953A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286831A (zh) * 2020-12-30 2021-01-29 中国电力科学研究院有限公司 多重循环的数据流分析方法、系统、设备及存储介质
CN112800425A (zh) * 2021-02-03 2021-05-14 南京大学 一种基于图计算的代码分析的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100097981A1 (en) * 2008-10-16 2010-04-22 Nishi Kant Methods and systems for providing multiple media streams in a hybrid wireless network
CN108984843A (zh) * 2018-06-20 2018-12-11 北京大学 一种基于守卫计算的区间信息分析方法
CN109002684A (zh) * 2018-06-20 2018-12-14 北京大学 一种区间信息分析方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100097981A1 (en) * 2008-10-16 2010-04-22 Nishi Kant Methods and systems for providing multiple media streams in a hybrid wireless network
CN108984843A (zh) * 2018-06-20 2018-12-11 北京大学 一种基于守卫计算的区间信息分析方法
CN109002684A (zh) * 2018-06-20 2018-12-14 北京大学 一种区间信息分析方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SEN MA,ETC: "Practical Null Pointer Dereference Detection via Value-Dependence Analysis", 《2015 IEEE INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING WORKSHOPS》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286831A (zh) * 2020-12-30 2021-01-29 中国电力科学研究院有限公司 多重循环的数据流分析方法、系统、设备及存储介质
CN112800425A (zh) * 2021-02-03 2021-05-14 南京大学 一种基于图计算的代码分析的方法和装置

Similar Documents

Publication Publication Date Title
CN109086031B (zh) 一种基于规则引擎的业务决策方法和装置
Cole Parallel programming with list homomorphisms
US20210216367A1 (en) Scheduling operations on a computation graph
CN111459993B (zh) 基于行为分析的配置更新方法、装置、设备及存储介质
Cordone et al. Parsimonious monitor control of Petri net models of flexible manufacturing systems
US20200242510A1 (en) System for constructing effective machine-learning pipelines with optimized outcomes
CN110244953A (zh) Java程序的区间分析方法及装置
US9311273B2 (en) Parallelization method, system, and program
CN110874634A (zh) 神经网络的优化方法及装置、设备和存储介质
CN103309893A (zh) 一种字符串的比较方法及装置
CN110321458A (zh) 一种基于控制流图的数据流分析方法及装置
CN117992598B (zh) 基于大模型的需求响应方法、装置、介质及设备
CN115511086A (zh) 一种针对超大模型的分布式推理部署系统
CN108920149A (zh) 编译方法和编译装置
CN111950579A (zh) 分类模型的训练方法和训练装置
KR101294708B1 (ko) 행위 오류 분석 장치 및 그 방법
CN116702157B (zh) 一种基于神经网络的智能合约漏洞检测方法
CN106383738B (zh) 任务处理方法和分布式计算框架
CN112346977A (zh) 量子云计算平台软件功能测评方法和装置
CN116974765A (zh) 一种异构计算机的存储管理系统
CN110765100A (zh) 标签的生成方法、装置、计算机可读存储介质及服务器
CN110400560A (zh) 数据处理方法及装置、存储介质、电子装置
CN113221126B (zh) 一种TensorFlow程序漏洞检测方法、装置及电子设备
Hunt et al. Evolving dispatching rules with greater understandability for dynamic job shop scheduling
Higa et al. A coarse-grained parallel algorithm for the matrix chain order problem

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190917