流图的分类与识别

本文介绍了控制流图(CFG)的基本元素,包括基本块(无分支语句序列)、分支结构(if-then, if-else, n路分支)和循环结构(while, do-while),探讨了循环头、循环入口和可规约流图的概念。内容源自《高级编译器设计与实现》及反编译技术研究。" 126685151,7598238,现代前端开发中关于undefined的理解与误区,"['前端开发', 'JavaScript', 'ESLint', 'Webpack']
摘要由CSDN通过智能技术生成

源代码的结构在编译器中往往会在某个环节被转换成CFG,不同的控制语句会生成形形色色的控制流结构,而在后端转换的过程中又会生成许多前端语法无法描述的结构出来,在控制流分析的过程中需要去识别这些结构。这篇文章简单的介绍一些基本结构。

1,基本块(basic block)。基本块是一个执行时连续的语句序列,往往最后会跟一个终结语句,比如跳转,条件跳转或者返回,除了最后一个语句外没有任何的分支或跳转命令。


基本块

基本块

2,分支结构(branch)。分支结构由一个条件基本块和两个分支基本块组成,一般语言中的if\while\for都会产生这种结构。

分支结构

分支结构

根据分支结构的上下文,又可以区分为if-then结构,if-else结构和if-then-else结构。


if-else
if-else结构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值