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

一种区间信息分析方法技术

技术编号:19778816 阅读:39 留言:0更新日期:2018-12-15 11:29
本发明专利技术提供一种区间信息分析方法,包括:S1,对于值依赖图中任一结点,根据该结点的任一前驱结点的区间信息和该结点与该前驱结点间的守卫条件,获取该前驱结点流入该结点的区间信息;S2,根据该结点的每一前驱结点流入该结点的区间信息和该结点的类型,获取该结点的区间信息。本发明专利技术提供的方法,应用递归的方法,基于前驱结点的区间信息和守卫条件,实现了值依赖图中任一结点区间信息的获取,提高了值依赖图的分析效率和分析进度。

【技术实现步骤摘要】
一种区间信息分析方法
本专利技术涉及值依赖图
,尤其涉及一种区间信息分析方法。
技术介绍
值依赖图(ValueDependenceGraph)是一种有向图,可表示为VDG=(N,N_s,E,E_i)。其中,N为结点集,每个结点对应程序中的一条语句,N_s为选择语句结点集,包含分支选择语句以及循环选择语句,边集E={<n1,ns1,…,nsi,n2>|n1,n2∈N,ns1,nsi∈N_s,n1为n2在值依赖源点,ns为可选结点即n1可以直接到达n2}。上述值依赖图是对流值图的一种扩展。值依赖图本身是通过定值使用分析和数据流分析等构造的反应变量之间守卫条件的图,所有可能影响当前结点值域范围的结点都是当前结点的前驱结点,并且每个前驱结点到当前结点都有相应的逻辑条件进行约束。然而,如何基于值依赖图中反应变量间的守卫条件,获知任一结点的区间信息,依然是值依赖图领域亟待解决的问题。
技术实现思路
本专利技术为解决现有技术中存在的问题,提供了一种区间信息分析方法。一方面,本专利技术提出一种区间信息分析方法,包括:S1,对于值依赖图中任一结点,根据该结点的任一前驱结点的区间信息和该结点与该前驱结点间的守卫条件,获取该前驱结点流入该结点的区间信息;S2,根据该结点的每一前驱结点流入该结点的区间信息和该结点的类型,获取该结点的区间信息。优选地,所述步骤S1进一步包括:根据下式获取该结点的任一前驱结点流入该结点的区间信息:predsMap[i](vnode)=outMap[i]∩guardMap[i]式中,predsMap[i](vnode)为该结点的第i个前驱结点流入该结点的区间信息,outMap[i]为该结点的第i个前驱结点的区间信息,guardMap[i]为该结点与该结点的第i个前驱结点间的守卫条件的区间信息。优选地,所述步骤S2进一步包括:S21,根据下式获取流入该结点的区间信息:式中,inMap(vnode)为流入该结点的区间信息,predsMap[i]为该结点的第i个前驱结点流入该结点的区间信息;S22,根据所述流入该结点的区间信息和该结点的类型,获取该结点的区间信息。优选地,所述步骤S22进一步包括:若所述流入该结点的区间信息为空集,则该结点的区间信息为空集;否则,若该结点的前驱结点中包括该结点,则根据所述流入该结点的区间信息和该结点的类型,获取该结点循环前信息,基于所述循环前信息和自循环的守卫条件获取该结点的区间信息;若该结点的前驱结点不包括该结点,则基于所述流入该结点的区间信息和该结点的类型获取该结点的区间信息。优选地,该结点的类型为赋值结点、函数调用结点、函数入口结点、条件判断结点或返回语句结点。优选地,若该结点为赋值结点,则根据所述流入该结点的区间信息模拟计算,获取该结点的区间信息;若该结点为函数调用结点,则根据所述流入该结点的区间信息获取该结点中的函数调用的参数的区间信息,将所述参数的区间信息作为该结点的区间信息;若该结点为函数入口结点,且函数调用为变量,则从所述流入该结点的区间信息中提取所述变量的区间信息,并将所述变量的区间信息作为该结点的区间信息;若该结点为函数入口结点,且函数调用为常量,则将该常量的区间信息作为该结点的区间信息;若该结点为条件判断结点或返回语句结点,则该结点的区间信息为所述流入该结点的区间信息。优选地,任一结点的区间信息如下式所示:outMap={<var,isLeft,VRI>}式中,outMap为结点的区间信息,var为变量,isLeft为true或false,true和false分别用于表示变量var位于所述结点对应的语句中等号的左边和右边,VRI为变量var对应的值域信息。优选地,所述流入该结点的区间信息如下式所示:inMap={<var,VRI>}式中,inMap为流入该结点的区间信息,var为变量,VRI为变量var对应的值域信息。另一方面,本专利技术提出一种区间信息分析设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如前所述的方法。再一方面,本专利技术提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如前所述的方法。本专利技术提供的一种区间信息分析方法,应用递归的方法,基于前驱结点的区间信息和守卫条件,实现了值依赖图中任一结点区间信息的获取,提高了值依赖图的分析效率和分析进度。附图说明图1为本专利技术具体实施例的一种区间信息分析方法的流程示意图;图2为本专利技术具体实施例的值依赖图中结点存在形式示意图;图3为本专利技术具体实施例的一种值依赖图;图4为本专利技术具体实施例的一种单变量循环的值依赖图;图5为本专利技术具体实施例的一种区间信息分析设备的结构示意图。具体实施方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。图1为本专利技术具体实施例的一种区间信息分析方法的流程示意图,如图1所示,一种区间信息分析方法,包括:S1,对于值依赖图中任一结点,根据该结点的任一前驱结点的区间信息和该结点与该前驱结点间的守卫条件,获取该前驱结点流入该结点的区间信息;S2,根据该结点的每一前驱结点流入该结点的区间信息和该结点的类型,获取该结点的区间信息。具体地,图2为本专利技术具体实施例的值依赖图中结点存在形式示意图,如图2所示,值依赖图中,任一结点与其前驱结点之间存在依赖关系(dependence),守卫条件(guard)为所述依赖关系的属性,所述守卫条件,包括了该结点与其前驱结点间所含的变量从定义到使用的关系、数组从定义到其数组元素使用的关系等。所述前驱结点的值依赖信息能够传递到该结点的条件即所述守卫条件得到满足。根据前驱结点的区间信息获取该结点的区间信息,具体步骤如下:首先,对于值依赖图中的任一结点,获取该结点的前驱结点集合,从所述前驱结点集合中任意选取一个前驱结点,获取该前驱结点的区间信息以及该结点与该前驱结点间的守卫关系。其次,根据该前驱结点的区间信息和该结点与该前驱结点间的守卫关系,获取该前驱结点流入该结点的区间信息。随后,根据上述方法获取该结点的每一前驱结点流入该结点的区间信息。最后,根据每一前驱结点流入该结点的区间信息和该结点的类型,获取该结点的区间信息。本专利技术具体实施例中,应用递归的方法,基于前驱结点的区间信息和守卫条件,实现了值依赖图中任一结点区间信息的获取,提高了值依赖图的分析效率和分析进度。基于上述具体实施例,一种区间信息分析方法,所述步骤S1进一步包括:根据下式获取该结点的任一前驱结点流入该结点的区间信息:predsMap[i](vnode)=outMap[i]∩guardMap[i]式中,predsMap[i](vnode)为该结点的第i个前驱结点流入该结点的区间信息,outMap[i]为该结点的第i个前驱结点的区间信息,guardMap[i]为该结点与该结点的第i个前驱结点间的守卫条件的区间信息。具体地,获取任一前驱结点的区间信息以及该结点与该前驱结点间的守卫关系的区间信息,取本文档来自技高网...

【技术保护点】
1.一种区间信息分析方法,其特征在于,包括:S1,对于值依赖图中任一结点,根据该结点的任一前驱结点的区间信息和该结点与该前驱结点间的守卫条件,获取该前驱结点流入该结点的区间信息;S2,根据该结点的每一前驱结点流入该结点的区间信息和该结点的类型,获取该结点的区间信息。

【技术特征摘要】
1.一种区间信息分析方法,其特征在于,包括:S1,对于值依赖图中任一结点,根据该结点的任一前驱结点的区间信息和该结点与该前驱结点间的守卫条件,获取该前驱结点流入该结点的区间信息;S2,根据该结点的每一前驱结点流入该结点的区间信息和该结点的类型,获取该结点的区间信息。2.根据权利要求1所述的方法,其特征在于,所述步骤S1进一步包括:根据下式获取该结点的任一前驱结点流入该结点的区间信息:predsMap[i](vnode)=outMap[i]∩guardMap[i];式中,predsMap[i](vnode)为该结点的第i个前驱结点流入该结点的区间信息,outMap[i]为该结点的第i个前驱结点的区间信息,guardMap[i]为该结点与该结点的第i个前驱结点间的守卫条件的区间信息。3.根据权利要求1所述的方法,其特征在于,所述步骤S2进一步包括:S21,根据下式获取流入该结点的区间信息:式中,inMap(vnode)为流入该结点的区间信息,predsMap[i]为该结点的第i个前驱结点流入该结点的区间信息;S22,根据所述流入该结点的区间信息和该结点的类型,获取该结点的区间信息。4.根据权利要求3所述的方法,其特征在于,所述步骤S22进一步包括:若所述流入该结点的区间信息为空集,则该结点的区间信息为空集;否则,若该结点的前驱结点中包括该结点,则根据所述流入该结点的区间信息和该结点的类型,获取该结点循环前信息,基于所述循环前信息和自循环的守卫条件获取该结点的区间信息;若该结点的前驱结点不包括该结点,则基于所述流入该结点的区间信息和该结点的类型获取该结点的区间信息。5.根据权利要求3所述的方法,其特征在于,该结点的类型为赋值结点、函数调用结点、函数入口结点、条件判断结点或返回语句结点。6.根据权利要求5所述的方法,...

【专利技术属性】
技术研发人员:马森张世琨邵思豪高庆
申请(专利权)人:北京大学
类型:发明
国别省市:北京,11

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

1