基本块的定义和性质p252 例如下基本块 (1)T1:=A*B ■基本块的定义 (2)T2:=3/2 ◆是指程序中一顺序执行的 语句 (3)T3:=T1-T2 语句序列,其中只有一个 (4)X:=T3 入口语句和一个出口语句 (5)C:=2 基本块的性质 (6)T4:=AB ■有唯一入口和唯一出口 (7)T5:=18+C ■块内各个操作按序执行, 出口 (8)T6:=T4*T5 不出现任何分叉 语句 (9)Y:=T6 基本块内的语句要么全执行, 要么全不执行,而不能只执行一部分 2025/4/3
2025/4/3 6 基本块的定义和性质 p252 ◼ 基本块的定义 ◆是指程序中一顺序执行的 语句序列,其中只有一个 入口语句和一个出口语句 例如下基本块 (1)T1:=A*B (2)T2:=3/2 (3)T3:=T1-T2 (4)X:=T3 (5)C:=2 (6)T4:=A*B (7)T5:=18+C (8)T6:=T4*T5 (9)Y:=T6 入口 语句 出口 语句 ◼ 基本块的性质 ◼ 有唯一入口和唯一出口 ◼ 块内各个操作按序执行, 不出现任何分叉 基本块内的语句要么全执行, 要么全不执行,而不能只执行一部分
基本块入口语句的确定p252 ■确定规则 规则1 1.程序的第一条语 8a号 句;或者 规则2 2.能由条件转移语 @或r0o goto (8) 句或无条件转移 规则3 语句转移到的语 @5X:= (6)Y:=R 句;或者 (7)goto (3) 3.紧跟在转移语句 后面的语句 规则2@8)ite (9)halt ■举例 共4个入口语句,对应4个基本块 2025/4/3 ☒D
2025/4/3 7 基本块入口语句的确定 p252 ◼ 确定规则 1.程序的第一条语 句;或者 2.能由条件转移语 句或无条件转移 语句转移到的语 句;或者 3.紧跟在转移语句 后面的语句 ◼ 举例 (1)read X (2)read Y (3)R:=X mod Y (4)if R=0 goto(8) (5)X:=Y (6)Y:=R (7)goto(3) (8)write Y (9)halt 共4个入口语句 规则2 规则1 规则2 规则3 ① ② ③ ④ ,对应4个基本块
划分基本块的算法p251 ■1.求出四元式程序中各个基本块的入口语句 ■2.对以上求出的每一个入口语句,构造其所 属的基本块。由该入口语句 (1)到另一入口语句(不包括该入口语句)或者 (2)到一转移语句(包括该转移语句);或者 (3)到一停语句(包括该停语句) 之间的语句序列组成 ■3.凡未被纳入某一基本块的语句,都是程序 中控制流程无法到达的语句,从而也是不会 被执行到的语句,可把它们从程序中删除 2025/4/3
2025/4/3 8 划分基本块的算法 p251 ◼ 1.求出四元式程序中各个基本块的入口语句 ◼ 2.对以上求出的每一个入口语句,构造其所 属的基本块。由该入口语句 (1)到另一入口语句(不包括该入口语句)或者 (2)到一转移语句(包括该转移语句);或者 (3)到一停语句(包括该停语句) 之间的语句序列组成 ◼ 3.凡未被纳入某一基本块的语句,都是程序 中控制流程无法到达的语句,从而也是不会 被执行到的语句,可把它们从程序中删除