一种基于值流分析的Golang程序高效过程间逃逸分析方法

    公开(公告)号:CN114780105A

    公开(公告)日:2022-07-22

    申请号:CN202210476822.1

    申请日:2022-04-30

    Inventor: 张迎周 密杰 卢跃

    Abstract: 本发明公开了一种基于值流分析的Golang程序高效过程间逃逸分析方法,包括,对Golang程序进行预处理,得到基于静态单赋值形式的中间代码表示,创建过程间函数调用图和过程内控制流图;将函数调用图做逆拓扑排序,建立待分析函数序列,并对待分析函数进行是否涉及过程间调用判别;根据判别的不同分别计算目标函数的逃逸变量;基于函数调用图分析程序内的所有函数的逃逸变量,将所有分析函数的ESC进行合并得到最终的逃逸变量值的集合;基于SSA的代码中间表示进行Golang程序的逃逸分析,可扩展性高,方便后续做代码数据流分析。

    一种基于高阶函数的C++过程间异常分析系统及方法

    公开(公告)号:CN114647575A

    公开(公告)日:2022-06-21

    申请号:CN202210168542.4

    申请日:2022-02-23

    Abstract: 本发明公开了函数式编程和程序分析技术领域的一种基于高阶函数的C++过程间异常分析系统及方法,包括:确定过程调用图中每个被调用子过程的分析顺序,将C++程序中的语句进行分类;收集各个被调用子过程异常相关语句和函数调用语句的集合约束,按照集合约束规则对集合约束进行求解,获取过程内异常分析信息后,通过高阶函数的形式将所有被调用子过程的异常分析结果保存为异常分析函数摘要;按照函数的参数传递方式,根据形参和实参对应参数信息,在过程调用点处,对高阶函数式异常分析函数摘要的参数集合信息进行相应代入。本发明降低了传统方法需要构建过程间异常控制流图对异常进行过程间分析的时空开销,解决了异常分析效率较低的问题。

    一种基于高阶函数的程序间依赖关系抽取方法

    公开(公告)号:CN114238078A

    公开(公告)日:2022-03-25

    申请号:CN202111392045.4

    申请日:2021-11-23

    Abstract: 本发明公开了一种基于高阶函数的程序间依赖关系抽取方法,首先对程序进行预处理,构建程序的过程调用图,对过程调用图中的节点进行遍历,确定子过程的分析顺序;获取各个被调用子过程内的语句和变量间的依赖关系,用高阶函数的形式保存摘要信息;根据生成的高阶函数式函数摘要,在过程调用点处对函数摘要的函数参数进行相应值或者函数代入,获取过程间由于过程调用和参数传递产生的依赖关系。本发明通过高阶函数特性获取过程内的依赖关系,生成高阶函数形式表示的函数摘要,可方便过程间调用时在调用点处按需完成函数摘要中高阶函数参数的代入,快速获取形参与实参之间的依赖关系,有效提升了程序间依赖关系的抽取效率。

Patent Agency Ranking