基本块的划分原则有4条
- 初始语句作为第一个基本块的入口
 - 遇到标号类语句,结束当前基本块,标号作为新基本块的入口(标号不在当前基本块中,而是划到下一个基本块)
 - 遇到转移类语句时,结束当前当前基本块,转移语句作为当前基本块的结尾。
 - 当给引用类型变量赋值时,结束基本块,作为出口
 
关于if语句和while语句基本块划分的说明,对于if语句,其形式为:
判断条件->t
(THEN,t,_,_)
S1
(ELSE,_,_,_)
S2
(ENDIF,_,_,_)
 
翻译成目标代码的时候,THEN为JMPF指令,ELSE为JMP指令,ENDIF仅作为标号出现,则基本块应这样划分:
判断条件->t
(THEN,t,_,_)
*****************
S1
(ELSE,_,_,_)
*****************
S2
*****************
(ENDIF,_,_,_)
 
while语句的基本块划分说明:
 while语句的基本形式为:
(WHILE,_,_,_)
判断条件——>t
(DO,t,_,_)
S1
(ENDWHILE,_,_,_)
 
再翻译成目标代码时,WHILE为标号,DO为JMPF指令,EHDWHILE为JMP指令,所以其基本块应该这样划分:
*****************
(WHILE,_,_,_)
判断条件——>t
(DO,t,_,_)
*****************
S1
(ENDWHILE,_,_,_)
*****************
 
一个练习,引自吉林大学PPT
 
 





![[附源码]Python计算机毕业设计大学生心理健康管理系统](https://img-blog.csdnimg.cn/43419b3d45cf479ba93eded038b91114.png)



![[附源码]java毕业设计学生信息管理系统](https://img-blog.csdnimg.cn/ce16ce78ce624b45bf4f0cdcacc5ef5d.png)


![[附源码]Python计算机毕业设计大学生项目众筹系统](https://img-blog.csdnimg.cn/43da00c80b0f468a93390f82dacd0593.png)





