[发明专利]一种基于值流分析的Golang程序高效过程间逃逸分析方法在审
申请号: | 202210476822.1 | 申请日: | 2022-04-30 |
公开(公告)号: | CN114780105A | 公开(公告)日: | 2022-07-22 |
发明(设计)人: | 张迎周;密杰;卢跃 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 南京禹为知识产权代理事务所(特殊普通合伙) 32272 | 代理人: | 马建军 |
地址: | 210003 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 分析 golang 程序 高效 过程 逃逸 方法 | ||
1.一种基于值流分析的Golang程序高效过程间逃逸分析方法,其特征在于:包括,
对Golang程序进行预处理,得到基于静态单赋值形式的中间代码表示,创建过程间函数调用图和过程内控制流图;
将函数调用图做逆拓扑排序,建立待分析函数序列,并对待分析函数进行是否涉及过程间调用判别;
根据判别的不同分别计算目标函数的逃逸变量;
基于函数调用图分析程序内的所有函数的逃逸变量,将所有分析函数的ESC进行合并得到最终的逃逸变量值的集合。
2.如权利要求1所述的基于值流分析的Golang程序高效过程间逃逸分析方法,其特征在于:在判断待分析函数不涉及过程间调用后,搜集与Golang语言逃逸规则相关的变量。
3.如权利要求2所述的基于值流分析的Golang程序高效过程间逃逸分析方法,其特征在于:利用逆向数据流分析技术遍历程序控制流图,访问仅与指定变量V(t)相关的语句集合{s|s∈Sl,l=1,2,3,...},其中s表示程序语句,l表示语句s对应的行号,Sl表示所有程序语句的集合,t表示相关逃逸规则,V(t)表示与逃逸规则t相对应的变量,并按照遍历顺序传递语句S(v)的分析结果。
4.如权利要求2或3所述的基于值流分析的Golang程序高效过程间逃逸分析方法,其特征在于:根据Golang程序中不同语句S(v)的定义构建数据流方程,依据建立的数据流方程计算语句S(v)的约束关系,基于不同语句S(v)的数据流方程对目标函数作逆向数据流迭代分析,获取目标函数的Ppre,其中Ppre表示分析上一条语句得到的约束集,初始状态下利用Ppre计算目标函数的逃逸变量。
5.如权利要求2所述的基于值流分析的Golang程序高效过程间逃逸分析方法,其特征在于:基于已经搜集到的对应的指针变量,设变量为V(r),r表示目标变量对应的逃逸区域,搜集目标函数h(....)内所有的局部变量和内存分配信息,设定变量以及内存初始逃逸状态均为未逃逸状态。
6.如权利要求4所述的基于值流分析的Golang程序高效过程间逃逸分析方法,其特征在于:设F(x,y,r)为语句S(v)的约束函数,其中x表示语句S(v)中与V(t)相关的变量,y表示语句S(v)中与V(t)无关的变量,r表示接收到的上一条语句S(v)的分析结果,之后在构建不同语句S(v)对应的约束关系抽取方程。
7.如权利要求6所述的基于值流分析的Golang程序高效过程间逃逸分析方法,其特征在于:基于各类语句S(v)的约束函数,利用逆向数据流迭代分析技术对目标函数h(...)进行数据流迭代分析,设变量State表示迭代分析过程中语句S(v)的约束集是否发生改变,State初始值为TRUE,若一趟迭代分析结束之后,语句S(v)的约束集没有发生任何变化,则State=FALSE,并停止迭代;若任意S(v)的约束集在迭代分析过程中发生了变化,则State=TRUE,当一趟迭代分析结束之后State=FALSE,则停止迭代分析,并称此时各语句S(v)的约束集达到了不动值;
若一趟迭代分析结束之后State=TRUE,则继续进行下一轮迭代分析直到State=FALSE即停止迭代分析,然后利用迭代计算获得的最终的Ppre值,建立函数对语句S(v)的约束集Ppre进行求解,并建立函数计算目标函数的逃逸变量,并根据目标函数是否包含参数类型变量进行判断。
8.如权利要求1或2所述的基于值流分析的Golang程序高效过程间逃逸分析方法,其特征在于:在判断待分析函数涉及过程间调用后,搜集与Golang语言逃逸规则相关的变量,添加对函数调用区域内的相关变量的搜集,并标记函数调用点处的Ppre,取出被调用函数的逃逸分析结果,将Ppre代入逃逸分析结果内进行计算,捕获调用函数内的逃逸变量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210476822.1/1.html,转载请声明来源钻瓜专利网。