基本块的划分原则有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