坐标:编译原理,代码优化
1.删除公共子表达式需要用到以下哪种数据流分析技术( C )。
A.到达定值分析
B.活跃变量分析
C.可用表达式分析
D.以上都不正确
2.复制传播需要用到以下哪种数据流分析技术( C )。
A.到达定值分析
B.活跃变量分析
C.可用表达式分析
D.以上都不正确
3.删除无用代码需要用到以下哪种数据流分析技术( B )。
A.到达定值分析
B.活跃变量分析
C.可用表达式分析
D.以上都不正确
4.识别循环不变计算需要用到以下哪种数据流分析技术( A )。
A.到达定值分析
B.活跃变量分析
C.可用表达式分析
D.以上都不正确
5.关于支配结点的二元关系,下列叙述中不正确的是( D )。
A.满足自反性
B.满足传递性
C.满足反对称性
D.满足对称性
6.下列优化方法( C )不是针对循优化进行的。
A.强度削弱
B.删除归纳变量
C.删除多余运算
D.代码外提
7.程序流图中,若m是n的必经节点,并且存在有向边n→m,则称n→m是流图中的( B )
A.一个循环
B.一条回边
C.一条基本边
D.一个基本通图
8.程序流图中,具有性质( D )的节点序列为一个自然循环。
A.它们是非连通的且只有一个入口节点
B.它们是强连通的但有多个入口节点
C.它们是非连通的但有多个入口节点
D.它们是强连通的且只有一个入口节点
9.采用DAG图不可以实现的优化有( C )。
A.合并已知量
B.删除公共子表达式
C.删除无用赋值
D.删除归纳变量
合并已知量是常量合并吧。
10.( B )属于局部优化。
A.代码外提
B.删除多余运算
C.强度削弱
D.删除归纳变量
11.以下说法正确的是( A )。
A.进行代码优化时要着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用
B.强度削弱是局部优化的一种方法
C.循环不变计算都可以移动到循环之前
D.循环中的无用赋值在循环优化时均可删除
12.以下说法不正确的是( B )。
A.为了找出程序中的循环,就需要对程序中的控制流程进行分析
B.在循环中强度削弱仅对乘法运算实行
C.仅考虑一个基本块,不能确定一个赋值是否真是无用的
D.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度