编译程序中代码优化的目的在于使目标程序的执行速度加快。采用的优化方法中,合并已知量和删除公共子表达式是在__(1)__范围内进行;代码外提、删除归纳变量和强度削弱等是在__(2)__范围内进行。空白(2)处应选择()A、基本块B、循环语句C、赋值语句D、整个程序

题目

编译程序中代码优化的目的在于使目标程序的执行速度加快。采用的优化方法中,合并已知量和删除公共子表达式是在__(1)__范围内进行;代码外提、删除归纳变量和强度削弱等是在__(2)__范围内进行。空白(2)处应选择()

  • A、基本块
  • B、循环语句
  • C、赋值语句
  • D、整个程序

相似考题
参考答案和解析
正确答案:B
更多“编译程序中代码优化的目的在于使目标程序的执行速度加快。采用的优化方法中,合并已知量和删除公共子表达式是在__(1)__范围内进行;代码外提、删除归纳变量和强度削弱等是在__(2)__范围内进行。空白(2)处应选择()A、基本块B、循环语句C、赋值语句D、整个程序”相关问题
  • 第1题:

    编译程序对中间代码的优化,根据优化所涉及的程序范围,可分为局部优化、循环优化和全局优化。所谓局部优化是指在(30)范围内做的优化。

    A.表达式

    B.语句

    C.函数

    D.基本块


    正确答案:D
    解析:局部优化是在基本块范围内进行的优化。所谓基本块是指程序中一个顺序执行的语句(四元式)序列,其中只有一个入口和一个出口。入口就是其中的第1条语句,出口是最后一条语句。对一个给定的程序,把它划分成一系列的基本块,以基本块为结点,构建程序流图。对中间代码优化,首先是在各基本块范围内,分别进行局部优化,然后,进行基于循环的优化和全局优化。一个基本块中的四元式序列,可以先把它表示成一个DAG(有向无环)图,然后,根据DAG图的依赖关系,把这个DAG图重新写成一个基本块的四元式序列。在重建基本块的四元式序列过程中,进行已知量的合并、删除多余运算和删除无用赋值的优化。

  • 第2题:

    设有如下代码:

    x=1

    Do

    x=x+2

    Loop until 【 】

    运行程序,要求循环执行3次后结束循环,在空白处填入适当语句。


    正确答案:x=7或x>=7或x>6或x>=6或x>5
    x=7或x>=7或x>6或x>=6或x>5 解析:Do...Until...Loop结构是条件式为假时,重复执行循环,直到条件式为真,结束循环。根据题目要求循环执行3次后结束循环,第一次循环:x=1,x=x+2=1+2=3:第二次循环:x=3,x=x+2=3+2=5:第三次循环:x=5,x=x+2=5+2=7:所以应该填x=7或其他等效形式。

  • 第3题:

    基本块内的优化为(25)。

    A.代码外提,删除归纳变量

    B.删除多余变量,删除无用赋值

    C.强度削弱,代码外提

    D.循环展开,循环合并


    正确答案:B
    解析:基本块优化包括:合并已知量,删除无用赋值及删除多余运算。

  • 第4题:

    基本块内的优化为()。

    • A、代码外提,删除归纳变量
    • B、删除多余运算,删除无用赋值
    • C、强度削弱,代码外提
    • D、循环展开,循环合并

    正确答案:B

  • 第5题:

    常见的代码优化包括()。

    • A、常量合并
    • B、公共子表达式删除
    • C、复写传播
    • D、死代码删除

    正确答案:A,B,C,D

  • 第6题:

    通常编译程序是把高级语言书写的源程序翻译为__(1)__程序。一个编译程序除了可能包括词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成之外,还应包括__(2)__。其中__(3)__和优化部分不是每个编译程序都必需的。空白(3)处应选择()

    • A、词法分析
    • B、语法分析
    • C、中间代码生成
    • D、目标代码生成

    正确答案:C

  • 第7题:

    通常编译程序是把高级语言书写的源程序翻译为__(1)__程序。一个编译程序除了可能包括词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成之外,还应包括__(2)__。其中__(3)__和优化部分不是每个编译程序都必需的。空白(1)处应选择()

    • A、Basic程序
    • B、中间语言
    • C、另一种高级语言
    • D、低级语言

    正确答案:D

  • 第8题:

    编译程序中代码优化的目的在于使目标程序的执行速度加快。采用的优化方法中,合并已知量和删除公共子表达式是在__(1)__范围内进行;代码外提、删除归纳变量和强度削弱等是在__(2)__范围内进行。空白(1)处应选择()

    • A、基本块
    • B、循环语句
    • C、赋值语句
    • D、整个程序

    正确答案:A

  • 第9题:

    多选题
    常见的代码优化包括()。
    A

    常量合并

    B

    公共子表达式删除

    C

    复写传播

    D

    死代码删除


    正确答案: B,C
    解析: 暂无解析

  • 第10题:

    单选题
    通常编译程序是把高级语言书写的源程序翻译为__(1)__程序。一个编译程序除了可能包括词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成之外,还应包括__(2)__。其中__(3)__和优化部分不是每个编译程序都必需的。空白(3)处应选择()
    A

    词法分析

    B

    语法分析

    C

    中间代码生成

    D

    目标代码生成


    正确答案: C
    解析: 暂无解析

  • 第11题:

    填空题
    代码的优化可以分为局部优化、循环优化和全局优化。强度削弱属于()优化,删除公共子表达式属于()优化。

    正确答案: 循环,局部
    解析: 暂无解析

  • 第12题:

    单选题
    编译程序中代码优化的目的在于使目标程序的执行速度加快。采用的优化方法中,合并已知量和删除公共子表达式是在__(1)__范围内进行;代码外提、删除归纳变量和强度削弱等是在__(2)__范围内进行。空白(1)处应选择()
    A

    基本块

    B

    循环语句

    C

    赋值语句

    D

    整个程序


    正确答案: B
    解析: 暂无解析

  • 第13题:

    在编译程序时,采用的对中间代码的优化方法中,(30)是基于循环结构进行的优化处理。

    ①合并已知量

    ②删除归纳变量

    ③删除多余运算

    ④强度削弱

    ⑤复写传播

    ⑥代码外提

    A.①③⑤

    B.②④⑥

    C.①②③

    D.④⑤⑥


    正确答案:B
    解析:针对循环能采用的优化技术有代码外提、强度削弱和删除归纳变量。代码外提是把循环体中不随循环的执行改变计算结果的表达式外提到循环的前置块中。强度削弱是用较弱的运算代替较强的运算,例如用加法运算代替乘法运算。为了实施这种优化技术,要先找出归纳变量,什么是归纳变量呢?若在循环体中变量i只有唯一的形式i:=i+c,其中c是常量,则称i是基本归纳变量。若在循环体中有另一个变量j,其值是基本归纳变量i的线性函数,则称j是普通归纳变量。删除归纳变量是在强度削弱后进行的,用和基本归纳变量同族的归纳变量代替之,使基本归纳变量成为无用赋值,故可删去。

  • 第14题:

    下列优化中,不属于循环优化的是(42)。

    A.强度削弱

    B.合并已知量

    C.删除归纳变量

    D.代码外提


    正确答案:B
    解析:循环优化包括:代码外提,强度削弱,删除归纳变量,循环展开和循环合并。

  • 第15题:

    在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。


    正确答案:错误

  • 第16题:

    下列()优化方法不是针对循环优化进行的。

    • A、强度削弱
    • B、删除归纳变量
    • C、删除多余运算
    • D、代码外提

    正确答案:C

  • 第17题:

    在编译程序中与生成中间代码的目的无关的是()

    • A、便于目标代码优化
    • B、便于存储空间的组织
    • C、便于目标代码的移植
    • D、便于编译程序的移植

    正确答案:B

  • 第18题:

    代码的优化可以分为局部优化、循环优化和全局优化。强度削弱属于()优化,删除公共子表达式属于()优化。


    正确答案:循环;局部

  • 第19题:

    通常编译程序是把高级语言书写的源程序翻译为__(1)__程序。一个编译程序除了可能包括词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成之外,还应包括__(2)__。其中__(3)__和优化部分不是每个编译程序都必需的。空白(2)处应选择()

    • A、符号执行器
    • B、模拟执行器
    • C、解释器
    • D、表格管理和出错处理

    正确答案:D

  • 第20题:

    单选题
    下列()优化方法不是针对循环优化进行的。
    A

    强度削弱

    B

    删除归纳变量

    C

    删除多余运算

    D

    代码外提


    正确答案: C
    解析: 循环优化包括代码外提,强度削弱,删除归纳变量,循环合并和循环展开

  • 第21题:

    单选题
    基本块内的优化为()。
    A

    代码外提,删除归纳变量

    B

    删除多余运算,删除无用赋值

    C

    强度削弱,代码外提

    D

    循环展开,循环合并


    正确答案: D
    解析: 暂无解析

  • 第22题:

    单选题
    通常编译程序是把高级语言书写的源程序翻译为__(1)__程序。一个编译程序除了可能包括词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成之外,还应包括__(2)__。其中__(3)__和优化部分不是每个编译程序都必需的。空白(1)处应选择()
    A

    Basic程序

    B

    中间语言

    C

    另一种高级语言

    D

    低级语言


    正确答案: C
    解析: 暂无解析

  • 第23题:

    单选题
    编译程序中代码优化的目的在于使目标程序的执行速度加快。采用的优化方法中,合并已知量和删除公共子表达式是在__(1)__范围内进行;代码外提、删除归纳变量和强度削弱等是在__(2)__范围内进行。空白(2)处应选择()
    A

    基本块

    B

    循环语句

    C

    赋值语句

    D

    整个程序


    正确答案: C
    解析: 暂无解析