A-A+

对下面的语句序列 X=1; X=2 Y=X*X+4*X+4; IF Y>X THEN Z=Y

2022-08-12 20:40:38 问答库 阅读 197 次

问题详情

对下面的语句序列 X=1; X=2 Y=X*X+4*X+4; IF Y>X THEN Z=Y-X; ELSE Z=Z-Yj 可以实施的优化措施不包括_______。
A.常量合并
B.代码外提
C.死代码删除
D.无用赋值删除

请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:B
给出的语句序列中包含了两次对X的定值,且赋值表达式右边皆为常量,两次定值之间没有出现对X的引用,因此可以实施无用赋值删除的优化;Y的值由X确定,当X为常量时,可以采用常量合并的方式确定Y的值,且可以发现Y的值必然大于X的值,因此条件语句IF为假的部分不可达,成为死代码。选项B中的代码外提是在循环优化采取的优化措施,而给出的代码中并无循环,因此B是正确答案。

考点:序列,语句