坐标:编译原理,代码优化
1单选(1分)
数据流分析的主要应用不包括(D)。
A.活跃变量分析
B.到达-定值分析
C.可用表达式分析
D.自然循环分析
2单选(1分)
以下说法不正确的是(B)。
A.在每一种数据流分析应用中,都会把每个程序点和一个数据流值关联起来
B.一个语句之前和之后的数据流值不受该语句的语义的约束
C.数据流分析是一组用来获取程序执行路径上的数据流信息的技术
D.大部分全局优化是基于数据流分析技术实现的
3单选(1分)
以下说法不正确的是©。
A.传递函数有两种风格,一种是信息沿执行路径前向传播,称为前向数据流问题;另一种是信息沿执行路径逆向传播,称为逆向数据流问题
B.一个赋值语句之前和之后的数据流值的关系被称为传递函数
C.在逆向数据流问题中,一个语句s的传递函数以语句前的数据流值作为输入,以语句后的数据流值作为输出
D.设基本块B由语句
,
, …,
顺序组成,则输出的数据流值与输入的数据流值相同
4单选(1分)
以下说法不正确的是©。
A.基本块B的传递函数fB可以通过将基本块中各语句的传递函数组合起来得到
B.如果循环中含有赋值x=y+z ,而y和z所有可能的定值都在循环外面( 包括y或z是常数的特殊情况) ,那么y+z就是循环不变计算
C.对于到达定值问题,一个基本块B的IN值等于它的所有前驱基本块P的OUT值的交集
D.定值d: u = v + w “生成”了一个对变量u的定值d,并“杀死”了程序中其它对u的定值
5单选(1分)
关于下图的叙述中,错误的是(D)。
A.
B.
C.
D.
KillB2={d5}
6
单选(1分)
以下说法不正确的是(B)。
A.如果块B中变量a的引用之前有a的定值,那么只有a的最后一次定值会在该引用的ud链中
B.如果块B中变量a的引用之前没有a的定值,那么只有a的最后一次定值会在该引用的ud链中
C.如果块B中变量a的引用之前没有a的定值,那么a的这次引用的ud链就是IN[B]中a的定值的集合
D.引用-定值链( ud-chains) 是一个列表,对于变量的每一次引用,到达该引用的所有定值都在该列表中