write B
if B < 100 goto L2 halt L2: x := x + 1 goto L1 解:程序的流图如下
9.2 对本题中所示的流图,求出其各结点n的控制结点集D(n)、回边及循环(n0为首结点)。
解:各结点n的控制结点集D(n)如下: D(n0) = {n0} D(n1) = {n0, n1} D(n2) = {n0, n1, n2} D(n3) = {n0, n1, n2, n3} D(n4) = {n0, n1, n2, n4} D(n5) = {n0, n1, n2, n5} D(n6) = {n0, n1, n2, n5, n6} D(n7) = {n0, n1, n2, n5, n6, n7}
回边和循环:
因为 D(n5) = {n0, n1, n2, n5} ,且 n5 -> n2,所以 n5 -> n2为一条回边。根据它求出的循环 L1 = {n2, n5, n3, n4}。 因为D(n6) = {n0, n1, n2, n5, n6} ,且 n6 -> n1,所以n6 -> n1
为一条回边。根据这条回边,求出的循环 L2 = {n6, n1, n5, n3, n4, n2}。
9.8 在对编译程序产生的中间代码进行优化时,就实施优化的范围来说,分 A 优化和 B 优化。循环优化属于 B 优化,它对于提高目标代码的运行速度是非常有效的。循环优化主要采用的三项优化措施是 C 、 D 、 E 。
答案:A:局部 B:全局 C:代码外提 D:削减运算强度 E:删除归纳变量