编译原理练习题答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编译原理练习题

一、选择题

1.下列()程序语言是依赖于机器的。

A.自然语言

B.高级语言

C.SQL语言

D.汇编语言或机器语言

2.编译程序是对()程序进行翻译。

A.机器语言

B. 汇编语言

C. 高级语言

D. 自然语言

3.编译程序的工作过程划分为5个阶段:词法分析、()、语义分析与中间代码

A. 语法分析

B. 出错处理

C. 表格管理

D.存储空间组织

4.编译程序各阶段的工作都涉及到()。

A. 语法分析

B. 语义分析

C.代码优化

D.表格管理

5.设A是符号串的集合,下列对A*计算不正确的是()。

A.{ε}∪A+

B. A*=A1∪A2∪…∪A n∪…

C. A0∪A+

D. A*=A0∪A1∪A2∪…∪A n∪…

6.设x是符号串,符号串的幂运算x0=()

A.Φ

B.x

C.1

D.ε

7.程序语言的生成机构是()。

A.自动机

B.文法

C.产生式

D.语言本身

8.设有文法G的符号集V,非终结符集V N,终结符集V T,下列叙述中正确的是()。

A.V=V T

B.V=V N

C.V=V T∪V N

D.V=V T∩V N

9.文法G产生的()的全体构成该文法描述的语言。

A.句型

B.终结符集

C.非终结符集

D.句子

10.若一个文法满足(),则称该文法为二义文法。

A. 存在一个最左推导。

B.存在一个最右推导。

C.文法的某个句子存在两棵(包括两棵)以上的语法树。

D.文法的某个句子存在一棵(包括一棵)以上的语法树。

11.给定文法A→bA|cc,下面的符号串中为该文法句子的是()。

①cc ②bcbc ③bcbcc ④bccbcc ⑤bbbcc

可选项有:

A.①⑤

B.①③④⑤

C.①④

D.①④⑤

12.设∑={0,1},则∑上所有以1开头,后跟若干个010的字串的集合对应的正规式为()。

A.1(010)*

B.1(010)+

C.(010)*1

D.(010)+1

13.从编译程序的语法分析角度看,源程序是句子的集合,()可以较好地反映句子的结构。

A.线性表

B.树

C.强连通图

D.堆栈

14.在常用的语法分析中,递归下降分析法属于()分析方法。

A.自左至右

B.自上而下

C.自下而上

D.自右向左

15.在自上而下的语法分析方法中,递归下降分析法和预测分析法要求描述程序语言的文法是()。

A.LL(1)文法

B.LR(1)文法

C.正规文法

D.右线性文法

16.进行LL(1)分析的文法首先应该消除()。

A.左递归和右递归 B.左递归和回溯 C.右递归和回溯 D.左递归

17.自下而上语法分析的主要分析动作是()。

A.推导

B. 规约

C. 移进-规约

D.匹配

18.语义分析与中间代码生成时所依据的是()。

A.语法规则

B.词法规则

C.语义规则

D.等价变换规则

19.在编译程序中产生中间代码的好处是()。

A.便于进行存储空间的组织

B. 有利于编译程序的移植

C.有利于提高目标代码的质量

D. 便于进行与机器无关的代码优化

20.终结符具有()属性。

A.传递

B.继承

C.抽象

D.综合

21.源程序中的()语句在编译时不产生中间代码或目标代码。

A.说明性

B.赋值

C.布尔表达式

D.算术表达式

22.在编译中,程序中的已知长度数组变量采用()存储分配策略。

A.最佳

B.静态

C.栈式

D.堆式

23.像C语言、Pascal语言等允许可变数组和递归调用的语言,通常采用()存储分配策略。

A. 静态

B.栈式

C.堆式

D.最佳

24.过程的display表可反映()。

A. 过程的嵌套层次

B. 过程的连接数据

C.过程的返回地址

D.过程的入口地址

25.编译程序中,实施代码优化的目的是()。

A.便于生产目标代码

B.有利于源程序的移植

C. 便于进行存储空间的组织

D.使产生的目标代码更为高效

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

A.强度削弱

B.删除归纳变量

C.删除公共子表达式

D.代码外提

27.对于一个基本块来说,正确的说法是()。

A.只有一个入口语句和一个出口语句

B. 有一个入口语句和多个出口语句

C.有多个入口语句和一个出口语句

D. 只有多个入口语句和多个出口语句

28.代码生成器的输入是()。

A.优化后的中间代码

B.符号表

C.语法树

D. A和B

29.下列()不可能是目标代码。

A.汇编指令代码

B.可重定位指令代码

C.绝对指令代码

D.中间代码

30.在目标代码生成中,关于对寄存器的选择,下列说法错误的是()。

A.合理有效地利用目标机上提供的寄存器资源将会提高所生成目标代码的质量

B.当寄存器不够用时,程序将无法运行。

C.当寄存器不够用时,需要将一个最近最少使用的寄存器内容保存起来

D.变量的值已经在寄存器中时可以直接使用

二、简答题

1.已知某布尔表达式的文法G:

or |

and |

→ not | () | true | false

试给出句子not(true or false)的最左推导、最右推导和语法树。

2.给定确定的有限动机M,用状态转换图表示如图1所示。

相关文档
最新文档