给出如下程序段的四元式代码和三元式代码。(20分) z := 3; while j< 10 do begin j := x +1; x := x+1 ; m: = x+1; if x <10 then y:= A[i] +m else y:= A[i] -m n := z + 10; end
时间: 2024-04-27 08:19:34 浏览: 14
四元式代码:
1. z := 3 => (3, -, -, z)
2. (L1) => (L1, -, -, -)
3. j < 10 => (<, j, 10, t1)
4. t1 => (j, -, -, t1)
5. (L2) => (L2, -, -, -)
6. j := x + 1 => (+, x, 1, t2)
7. t2 => (j, -, -, t2)
8. x := x + 1 => (+, x, 1, t3)
9. t3 => (x, -, -, t3)
10. x + 1 => (+, x, 1, t4)
11. t4 => (m, -, -, t4)
12. x < 10 => (<, x, 10, t5)
13. t5 => (x, -, -, t5)
14. A[i] + m => (+, A[i], m, t6)
15. t6 => (y, -, -, t6)
16. (L3) => (L3, -, -, -)
17. A[i] - m => (-, A[i], m, t7)
18. t7 => (y, -, -, t7)
19. z + 10 => (+, z, 10, t8)
20. t8 => (n, -, -, t8)
21. (L4) => (L4, -, -, -)
三元式代码:
1. (3, -, -, z)
2. (L1, -, -, -)
3. (<, j, 10, t1)
4. (j, -, -, t1)
5. (L2, -, -, -)
6. (+, x, 1, t2)
7. (j, -, -, t2)
8. (+, x, 1, t3)
9. (x, -, -, t3)
10. (+, x, 1, t4)
11. (m, -, -, t4)
12. (<, x, 10, t5)
13. (x, -, -, t5)
14. (+, A[i], m, t6)
15. (y, -, -, t6)
16. (L3, -, -, -)
17. (-, A[i], m, t7)
18. (y, -, -, t7)
19. (+, z, 10, t8)
20. (n, -, -, t8)
21. (L4, -, -, -)