【技术实现步骤摘要】
本专利技术涉及函数的控制流程图的构建,尤其涉及基于源代码抽象语法树构建函数控制流程图的方法及系统。
技术介绍
1、抽象语法树(abstract syntax tree,ast),是源代码语法结构的一种抽象表示。它以树状的形式表现函数的语法结构,树上的每个节点都表示源代码函数中的一种结构。抽象语法树可以帮助编译器理解和分析程序的语法结构,从而进行代码生成、优化和重构等工作。
2、控制流程图(control flow graph,cfg)是一个过程或程序的抽象表现,它以图形方式来表示程序执行过程中所有可能的控制流路径。没有任何跳跃或跳跃目标的直线代码块则被定义为一个基本块,在控制流程图中,每个节点代表一个基本块,跳跃目标以一个基本块为开始,到另一个基本块结束。控制流程图是编译器优化和静态分析的重要工具。
3、利用源代码所转换而来的抽象语法树可构建形成源代码中函数的控制流程图,其好处在于可以直接通过解析程序源代码生成控制流程图,而不需要进行中间表示结构的转换,还可以保留源代码原有的语法结构信息,方便后续的编译器优化和分
...【技术保护点】
1.一种基于源代码抽象语法树构建函数控制流程图的方法,其特征在于,包括:
2.根据权利要求1所述的基于源代码抽象语法树构建函数控制流程图的方法,其特征在于,对所述抽象语法树中的所述执行语句的遍历基于广度优先遍历原则。
3.根据权利要求1所述的基于源代码抽象语法树构建函数控制流程图的方法,其特征在于,所述一般基本块包括一条入口语句和一条出口语句;
4.根据权利要求1所述的基于源代码抽象语法树构建函数控制流程图的方法,其特征在于,将任一所述图基本块中的若干所述一般基本块并入所述函数的控制流时,将该所述图基本块形成的子控制流中的首个所述一
...【技术特征摘要】
1.一种基于源代码抽象语法树构建函数控制流程图的方法,其特征在于,包括:
2.根据权利要求1所述的基于源代码抽象语法树构建函数控制流程图的方法,其特征在于,对所述抽象语法树中的所述执行语句的遍历基于广度优先遍历原则。
3.根据权利要求1所述的基于源代码抽象语法树构建函数控制流程图的方法,其特征在于,所述一般基本块包括一条入口语句和一条出口语句;
4.根据权利要求1所述的基于源代码抽象语法树构建函数控制流程图的方法,其特征在于,将任一所述图基本块中的若干所述一般基本块并入所述函数的控制流时,将该所述图基本块形成的子控制流中的首个所述一般基本块与所述图基本块的用作前驱结点的所述一般基本块衔接,将该所述图基本块形成的所述子控制流中的最末一个所述一般基本块与该所述图基本块的用作后继节点的所述一般基本块衔接。
5.一种构建函数控制流程图的系统,其特征在于,包括:
<...【专利技术属性】
技术研发人员:陆庆尚,万振华,王颉,徐瑞祝,
申请(专利权)人:深圳开源互联网安全技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。