Compiler construction 达到定义分析-我的解决方案正确吗
我被要求为以下代码编写到达定义,我想知道我的解决方案是否正确?我走对了吗?我真的很感激任何帮助或暗示。多谢各位 代码:Compiler construction 达到定义分析-我的解决方案正确吗,compiler-construction,compiler-optimization,rda,Compiler Construction,Compiler Optimization,Rda,我被要求为以下代码编写到达定义,我想知道我的解决方案是否正确?我走对了吗?我真的很感激任何帮助或暗示。多谢各位 代码: a=0; 而(a
a=0;
而(a<100){
b=a+1
c=c+b
a=b*2
}
返回c;
步骤#1:查找块和标记
a = 0; // block 1 | a1
while (a < 100) // block 2 |
b = a + 1 // block 3 | b2
c = c + b | c3
a = b * 2 | a3
return c; // block 3 |
a=0;//1号区块| a1
while(a<100)//块2|
b=a+1//块3 | b2
c=c+b | c3
a=b*2 | a3
返回c;//第3区|
步骤#2:查找每个区块的GEN和KILL集合
块
消息
杀死
1.
a1
a3
2.
∅
∅
3.
b3、c3、a3
a1
4.
∅
∅
看看这个例子: 该示例中分析的代码比您的代码稍微复杂一点,但整个解决方案的解释非常详细
a = 0; // block 1 | a1
while (a < 100) // block 2 |
b = a + 1 // block 3 | b2
c = c + b | c3
a = b * 2 | a3
return c; // block 3 |