阅读以下程序代码(20分) if(y>0 and x>y) for(i=1; i<10; i++) x = x * y else y=x (a) 请给出其三地址代码序列。 (b) 请划分基本块并给出流图
时间: 2023-11-28 19:04:27 浏览: 53
(a) 三地址代码序列如下:
1. t1 = y > 0
2. t2 = x > y
3. if t1 and t2 goto 5
4. goto 8
5. i = 1
6. t3 = i < 10
7. if t3 goto 9
8. goto 11
9. x = x * y
10. i = i + 1
11. y = x
(b) 基本块划分和流图如下:
基本块1: 1, 2, 3, 4
基本块2: 5, 6, 7, 8
基本块3: 9, 10, 11
流图如下:
```
+-----+
| 1 |
+--+--+
|
+--+--+
| 2 |
+--+--+
|
+--+--+
| 3 |
+--+--+
|
+--+--+
| 4 |
+--+--+
|
+--+--+
| 5 |
+--+--+
|
+--+--+
| 6 |
+--+--+
|
+--+--+
| 7 |
+--+--+
|
+--+--+
| 8 |
+--+--+
|
+--+--+
| 9 |
+--+--+
|
+--+--+
| 10 |
+--+--+
|
+--+--+
| 11 |
+-----+
```