【最新合集】MOOC哈工大陈鄞 编译原理答案全集——>传送门


中间代码生成_1

1 中间代码生成时所依据的是( )。

A. 语法规则

B. 词法规则

C. 语义规则

D. 等价变换规则


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

A. 便于目标代码的优化

B. 便于存储空间的组织

C. 便于编译程序的移植

D. 便于目标代码的移植


3 以下说法不正确的是( )。

A. 对于声明语句,语义分析的主要任务就是收集标识符的类型等属性信息,为每一个名

字分配一个相对地址

B. 从变量类型可以知道该变量在运行时刻需要的内存数量。在编译时刻,可以使用这些

数量为每一个名字分配一个相对地址

C. 名字的类型和相对地址信息保存在相应的符号表条目中

D. 对声明的处理要构造符号表,但不产生中间代码


4 以下说法不正确的是( )。

A. 类型自身也有结构,用类型表达式来表示这种结构

B. 基本类型不是类型表达式

C. 类型名也是类型表达式

D. 将类型构造符作用于类型表达式可以构成新的类型表达式


5 数组元素的地址计算与数组的存储方式有关。

A. 对

B. 错


6 在程序中标识符的出现仅为使用性的。

A. 对

B. 错


7 在编译阶段只对可执行语句进行翻译。

A. 对

B. 错


8 在程序中标识符的出现仅为定义性的。

A. 对

B. 错


第12讲 中间代码生成_2

1 有文法G及其语法制导翻译如下所示( 语义规则中的*和+分别是常规意义下的算术运算符):

E→E(1) ∧ T {E.val = E(1).val * T.val}

E→T {E.val = T.val}

T→T(1)# n {T.val = T(1).val + n.val }

T→ n {T.val = n.val}


则分析句子1 ∧ 2 ∧ 3 # 4其值为( )。

A. 10

B. 34

C. 14

D. 54


2 用( )可以把a:=b+c翻译成四元式序列。

A. 语法规则

B. 词法规则

C. 语义规则

D. 等价变换规则


3 有文法G及其语法制导翻译如下所示( 语义规则中的*和+分别是常规意义下的算术运算符):

E→E(1) ∧ T {E.val = E(1).val * T.val}

E→T {E.val = T.val}

T→T(1)# n {T.val = T(1).val + n.val }

T→ n {T.val = n.val}

则分析句子2 ∧ 3 # 4其值为( )。

A. 10

B. 21

C. 14

D. 24


4 以下说法不正确的是( )。

A. 赋值语句翻译的主要任务是生成对表达式求值的三地址码

B. 在增量翻译方法中,gen( )函数不仅要构造出一个新的三地址指令,还要将它添加到

至今为止已生成的指令序列之后

C. 如果一个赋值语句中涉及到数组元素,那么将该语句翻译成三地址码时要解决的主要

问题是确定数组元素的存放地址,也就是数组元素的寻址

D. 数组元素的地址计算与数组的存储方式无关


5 数组元素的地址由两部分构成,一部分是基地址,另一部分是偏移量。

A. 对

B. 错


6 基地址通过查符号表即可获得。

A. 对

B. 错



7 数组元素的偏移地址的计算只取决于数组的下标。

A. 对

B. 错


8 设计数组引用的SDT的关键问题是:如何将地址计算公式和数组引用的文法关联起来。

A. 对

B. 错


中间代码生成_3

1 关于布尔表达式的叙述,不正确的是( )。

A. 布尔常量是布尔表达式

B. 布尔常量不是布尔表达式

C. 关系表达式是布尔表达式

D. 将括号和逻辑运算符作用于布尔表达式得到一个新的布尔表达式


2 以下说法不正确的是( )。

A. 为布尔表达式和控制流语句生成目标代码时,关键问题之一是确定跳转指令的目标标

B. 在生成跳转指令时,就可以确定目标标号

C. 在生成跳转指令时,目标标号还不能确定

D. 可以将标号的地址作为继承属性传递到生成相关跳转指令的地方,但是这样的做法需

要再进行一趟处理,将标号和具体地址绑定起来


3 令非终结符B表示布尔表达式,为B设置两个继承属性true和false。B.true是一个地址,该地址中存放了当B为真时控制流转向的指令的标号;B.false也是一个地址,该地址中存放了当B为假时控制流转向的指令的标号,则下列SDT中不正确的是( )。



4 令非终结符B表示布尔表达式,为B设置两个继承属性true和false。B.true是一个地址,该地址中存放了当B为真时控制流转向的指令的标号;B.false也是一个地址,该地址中存放了当B为假时控制流转向的指令的标号,则下列SDT中不正确的是( )。


5 在分支和循环中会用到条件式,而用作条件式的通常是布尔表达式。

A. 对

B. 错


6 在控制流语句的翻译中,布尔表达式B被翻译成由跳转指令构成的跳转代码。

A. 对

B. 错


7 逻辑运算符&&、|| 和 ! 会出现在代码中。

A. 对

B. 错


8在跳转代码中,逻辑运算符&&、|| 和 ! 被翻译成跳转指令。

A. 对

B. 错


中间代码生成_4

1 令非终结符B表示布尔表达式。在布尔表达式的回填技术中,为非终结符B设置两个综合属性:

B.truelist:指向一个包含跳转指令的列表,这些指令最终获得的目标标号就是当B为真时控制流

应该转向的指令的标号;B.falselist:指向一个包含跳转指令的列表,这些指令最终获得的目标

标号就是当B为假时控制流应该转向的指令的标号。则下列SDT中不正确的是()。


2 在下面的语句中,( )不需要回填技术。

A. 赋值语句

B. goto语句

C. 条件语句

D. 循环语句


3 四元式之间的联系是通过( )实现的。

A. 指示器

B. 临时变量

C. 符号表

D. 程序变量


4 四元式表示法的优点为 ( )。

A. 不便于优化处理,但便于表的更动

B. 不便于优化处理,但节省存储空间

C. 便于优化处理,也便于表的更动

D. 便于表的更动,也节省存储空间


5 在回填技术中,生成一个跳转指令时,暂时不指定该跳转指令的目标标号。

A. 对

B. 错


6 在回填技术中,同一个列表list中的跳转指令具有相同的目标标号。

A. 对

B. 错


7 在回填技术中,同一个列表list中的跳转指令可能具有不同的目标标号。

A. 对

B. 错


8 在回填技术中,等到能够确定正确的目标标号时,才去填充指令的目标标号。

A. 对

B. 错


整理不易, 如果对你产生了帮助, 还请点个赞哦~ Thanks♪(・ω・)ノ

【最新合集】编译原理习题(含答案)_11-14中间代码生成_MOOC慕课 哈工大陈鄞相关推荐

  1. 【最新合集】编译原理习题(含答案)_20代码生成_MOOC慕课 哈工大 陈鄞

    [最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 代码生成 1 在目标代码生成阶段,符号表用于( ). A. 目标代码生成 B. 语义检查 C. 语法检查 D. 地址分配 2 经编译 ...

  2. 【最新合集】编译原理习题(含答案)_答案全集_MOOC慕课 哈工大陈鄞

    [最新合集]编译原理习题(含答案)_1 绪论_MOOC慕课 哈工大陈鄞 [最新合集]编译原理习题(含答案)_2程序设计语言及其文法_MOOC慕课 哈工大陈鄞 [最新合集]编译原理习题(含答案)_3词法 ...

  3. 【最新合集】编译原理习题(含答案)_4-7语法分析_MOOC慕课 哈工大陈鄞

    [最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 1 如果文法G是无二义的,则它的任何句子α( ). A. 最左推导和最右推导对应的语法树必定相同 B. 最左推导和最右推导对应的语法 ...

  4. 【最新合集】编译原理习题(含答案)_15运行存储分配_MOOC慕课 哈工大陈鄞

    [最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 运行存储分配 1 在目标代码生成阶段,符号表用于(). A. 目标代码生成 B. 语义检查 C. 语法检查 D. 地址分配     ...

  5. 【最新合集】编译原理习题(含答案)_8-10语法制导翻译_MOOC慕课 哈工大陈鄞

    [最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 1 文法G[S]及其语法制导翻译定义如下: 产生式 语义动作 S' → S print( S.num) S → ( L) S.num ...

  6. 【最新合集】编译原理习题(含答案)_2程序设计语言及其文法_MOOC慕课 哈工大陈鄞

    [最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 1 文法:G:S→xSx | y所识别的语言是( ). 2 给定文法A→bA|ca,为该文法句子的是( ). A. bba B. c ...

  7. 【最新合集】编译原理习题(含答案)_1 绪论_MOOC慕课 哈工大陈鄞

    [最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 1 编译是对(). A. 机器语言的执行 B. 汇编语言的翻译 C. 高级语言的翻译 D. 高级语言程序的解释执行 2 用高级语言编 ...

  8. 编译原理习题(含答案)——2程序设计语言及其文法——哈工大陈鄞配套版本

    程序设计语言及其文法 1 文法:G:S→xSx | y所识别的语言是( ). 2 给定文法A→bA|ca,为该文法句子的是( ). A. bba B. cab C. bca D. Cba 3 设有文法 ...

  9. java aab全排列_编译原理习题课答案.ppt

    2)考虑下列产生式: FIRST(+E)∩FIRST(ε)={+}∩{ε}=φ FIRST(+E)∩FOLLOW(E')={+}∩{#,)}=φ FIRST(T)∩FIRST(ε)={(,a,b,^} ...

最新文章

  1. dijkstra算法matlab程序_编程习题课 | 用最短路算法为你的小地图导航
  2. 打印金子塔||打印乘法表 用函数的思想实现
  3. 写给初学者的JavaScript异步编程和背后思想
  4. 1.Linux下libevent和memcached安装
  5. 简谈C/C++学习路线
  6. COM编程之四 引用计数
  7. 海量数据处理:如何从10亿个数中,找出最大的10000个数?(top K问题)
  8. 操作系统线程互斥,锁死机制的简单介绍
  9. merge函数_c语言中的merge函数
  10. linux tee 重定向_快乐的linux命令行-重定向
  11. poj 1436 Horizontally Visible Segments
  12. Java入门——(5)Java API
  13. html5 图形水平运动,【分享】HTML5的Canvas制作3D动画效果分享
  14. 最简单的在IntelliJ IDEA导入一个本地项目教程
  15. 利用Eigen求广义逆矩阵
  16. 键盘删除键长按只能删除一个字符,因为开启了键盘筛选键功能,解决方法
  17. MetaPAD: 从大量文本语料库中发现元模式
  18. matlab 非线性方程组 最小值,如何在matlab中求解非线性方程组的参数值
  19. 弘辽科技:淘宝直通车推广无展现?该从何入手?
  20. 老师的经典口头禅,这一句最扎心

热门文章

  1. Github 开源了新型肺炎防疫项目,助力抗击疫情!
  2. [四]RabbitMQ-客户端源码之Frame
  3. 记一次在LAMP中遇到的问题
  4. Union-Find 算法应用
  5. 网络编程套接字(四)
  6. 微软为NBA提供云计算服务、Google公布Fuchsia OS细节、Zoom用户可选择数据库等|Decode the Week...
  7. JVM之GCRoots概述
  8. centos下安装ruby,删除ruby
  9. CPU缓存一致性协议MESI - 笔记
  10. 【Java数据库】ORM思想:对象关系映射 使用Java容器存储多条记录