[发明专利]一种资源流图的构建方法有效
申请号: | 202010741701.6 | 申请日: | 2020-07-29 |
公开(公告)号: | CN111857811B | 公开(公告)日: | 2023-09-22 |
发明(设计)人: | 欧鹏程 | 申请(专利权)人: | 湖南泛联新安信息科技有限公司 |
主分类号: | G06F8/74 | 分类号: | G06F8/74 |
代理公司: | 长沙市护航专利代理事务所(特殊普通合伙) 43220 | 代理人: | 莫晓齐 |
地址: | 410000 湖南省长沙市开福区伍家*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 资源 构建 方法 | ||
1.一种资源流图的构建方法,其特征在于,包括以下步骤:
S100、将源代码文件通过转换器生成相应的抽象语法树;
S200、对每个方法中需要分析的变量和语句分别定义,其中,变量定义为未赋值变量、赋值变量和参数变量;
S300、遍历所有的抽象语法树,并找到抽象语法树中的每一个方法,建立一个以它的名称和参数类型为主键值的索引;
S400、对于方法内的每一个参数变量进行处理;
S500、对于方法内的所有赋值变量进行处理;
S600、对于方法内的所有未赋值变量进行处理;
所述步骤S400具体包括以下过程:
S401、判断方法内的参数变量的类型是否为基本类型,若是,则返回步骤S200,反之,则进入步骤S402;
S402、对方法中的参数变量相关所有语句进行遍历;
所述步骤S500具体包括如下步骤:
S501、遍历方法内的所有语句;
S502、判断语句是否是与赋值变量相关,如果是则记录赋值变量后,返至步骤S402,反之,则进入步骤S600;
所述步骤S600具体表现为:
寻找所有的方法调用;
判断该类型的父节点的类型直到父节点的类型为其他块。
2.根据权利要求1所述的资源流图的构建方法,其特征在于,所述步骤S200中未赋值变量为只初始化了但是未赋值的变量,参数变量为方法的入参且不包括基本类型的变量,赋值变量为在方法内声明了并初始化的变量。
3.根据权利要求2所述的资源流图的构建方法,其特征在于,每个方法中需要分析的语句定义为跳转、返回值、If分支、try块、结束和其他普通语句六种类型,其中,跳转类型为在try语句中会抛出异常的语句,返回值类型为含有return的语句,If分支类型为语句if块的入口点,try块类型为try块的入口点,结束类型为方法结束的位置。
4.根据权利要求1所述的资源流图的构建方法,其特征在于,所述步骤S402中参数变量相关所有语句进行遍历时,语句类型判断的具体表现为:
A)判断是否为返回值类型,如果为返回值类型,则把该语句的类型设置为返回值后返回步骤S402;
B)判断是否为try块类型,如果为try块,则对于try块中的语句逐一分析后返回步骤S402;
C)判断是否为If分支类型,如果为if分支类型,首先,判断if分支的表达式,是否与分析的参数有关;其次,对于if里的then块语句分析后返回步骤S402;再次,对于if里的else块语句分析后返回步骤S402;
D)如果为其他普通语句,具体表现为:
若为方法调用语句,则方法调用语句分为调用者和被调用者,调用者为所找的参数调用方法,而被调用者则是作为方法中的参数;
若为赋值语句,则需判断语句的初始化是否为方法调用或者赋值对象是否为基本数据类型。
5.根据权利要求4所述的资源流图的构建方法,其特征在于,所述步骤B)具体包括如下过程:
对其中的catch块进行处理,记录每个所接受的异常类型,然后对catch块中的语句进行处理;
判断是否含有finally块,对finally块进行处理;
分析try块,以判断语句的类型;
返回步骤S402。
6.根据权利要求1所述的资源流图的构建方法,其特征在于,所述步骤S502具体表现为:
遍历剩余语句,查找与该赋值变量相关的语句;
遇到返回语句,则在该返回语句的下一节点增加一个结束语句;
如果变量位于语句中的赋值语句,且变量位于参数时,重复步骤S502,并且将该语句进行标记,下一次不会再去独立分析该条语句。
7.根据权利要求1至6中任一项所述的资源流图的构建方法,其特征在于,所述步骤S300与步骤S400之间还包括如下过程:每一次分析都是索引值中取一个方法开始。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南泛联新安信息科技有限公司,未经湖南泛联新安信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010741701.6/1.html,转载请声明来源钻瓜专利网。