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  |