编译原理期末总复习题(含答案)

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

第八节习题一、单项选择题

1、将编译程序分成若干个“遍”是为了 b 。

a.提高程序的执行效率

b.使程序的结构更加清晰

c.利用有限的机器内存并提高机器的执行效率

d.利用有限的机器内存但降低了机器的执行效率

2、构造编译程序应掌握 d 。

a.源程序b.目标语言

c.编译方法d.以上三项都是

3、变量应当 c 。

a.持有左值b.持有右值

c.既持有左值又持有右值d.既不持有左值也不持有右值

4、编译程序绝大多数时间花在 b 上。

a.出错处理b.词法分析

c.目标代码生成d.管理表格

5、 d 不可能是目标代码。

a.汇编指令代码b.可重定位指令代码

c.绝对指令代码d.中间代码

6、使用 a 可以定义一个程序的意义。

a.语义规则b.词法规则

c.产生规则d.词法规则

7、词法分析器的输入是 a 。

a.单词符号串b.源程序

c.语法单位d.目标程序

8、中间代码生成时所遵循的是- d 。

a.语法规则b.词法规则

c.语义规则d.等价变换规则

9、编译程序是对 d 。

a.汇编程序的翻译b.高级语言程序的解释执行

c.机器语言的执行d.高级语言的翻译

10、语法分析应遵循 b 。

a.语义规则b.语法规则

c.构词规则d.等价变换规则

解答

1、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。

2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。

3、对编译而言,变量既持有左值又持有右值,故选c。

4、编译程序打交道最多的就是各种表格,因此选d。

5、目标代码包括汇编指令代码、可重定位指令代码和绝对指令代码3种,因此不是目标代码的只能选d。

6、词法分析遵循的是构词规则,语法分析遵循的是语法规则,中间代码生成遵循的是语义规则,并且语义规则可以定义一个程序的意义。因此选a。

7、b 8、c 9、d 10、c

二、多项选择题

1、编译程序各阶段的工作都涉及到bc 。

a.语法分析b.表格管理c.出错处理

d.语义分析e.词法分析

2、编译程序工作时,通常有abce 阶段。

a.词法分析b.语法分析语义分析c.中间代码生成中间代码优化d.语义检查e.目标代码生成

解答

1.b、c 2. a、b、c、e

三、填空题

1、解释程序和编译程序的区别在于是否生成目标程序(解释不产生目标程序,边翻译边执行。

2、编译过程通常可分为5个阶段,分别是词法分析、语法分析语义分析中间代码生成、代码优化和目标代码生成。

3、编译程序工作过程中,第一段输入是源程序,最后阶段的输出为目标程序程序。

4、编译程序是指将源程序程序翻译成目标程序程序的程序。

解答

是否生成目标程序2、词法分析中间代码生成3、源程序目标代码生成4、源程序目

标语言

一、单项选择题

1、文法G:S→xSx|y所识别的语言是 c 。

a. xyx

b. (xyx)*

c. x n yx n(n≥0)

d. x*yx*(是指多个x)

2、文法G描述的语言L(G)是指ab 。

a. L(G)={α|S+α , α∈V T*}

b. L(G)={α|S*α, α∈V T*}

c. L(G)={α|S*α,α∈(V T∪V N*)}

d. L(G)={α|S+α, α∈(V T∪V N*)}

3、有限状态自动机能识别。

a. 上下文无关文法

b. 上下文有关文法

c.正规文法

d. 短语文法

4、设G为算符优先文法,G的任意终结符对a、b有以下关系成立。

a. 若f(a)>g(b),则a>b

b.若f(a)

c. a~b都不一定成立

d. a~b一定成立

5、如果文法G是无二义的,则它的任何句子α。

a. 最左推导和最右推导对应的语法树必定相同

b. 最左推导和最右推导对应的语法树可能不同

c. 最左推导和最右推导必定相同

d. 可能存在两个不同的最左推导,但它们对应的语法树相同

6、由文法的开始符经0步或多步推导产生的文法符号序列是。

a. 短语

b.句柄

c. 句型

d. 句子

7、文法G:E→E+T|T

T→T*P|P

P→(E)|I

则句型P+T+i的句柄和最左素短语为。

+T和i b. P和P+T c. i和P+T+i 和T

8、设文法为:S→SA|A

A→a|b

则对句子aba,下面是规范推导。

a. SSASAAAAAaAAabAaba

b. SSASAAAAAAAaAbaaba

c. SSASAASAaSbaAbaaba

d. SSASaSAaSbaAbaaba

9、文法G:S→b|∧(T)

T→T,S|S

则FIRSTVT(T) 。

a. {b,∧,(}

b. {b,∧,)}

c.{b,∧,(,,}

d.{b,∧,),,}

10、产生正规语言的文法为。

a. 0型

b. 1型

c. 2型

d. 3型

11、采用自上而下分析,必须。

a. 消除左递归

b. 消除右递归

c. 消除回溯

d. 提取公共左因子

12、在规范归约中,用来刻画可归约串。

a. 直接短语

b. 句柄

c. 最左素短语

d. 素短语

13、有文法G:E→E*T|T

T→T+i|i

句子1+2*8+6按该文法G归约,其值为。

a. 23 B. 42 c. 30 d. 17

14、规范归约指。

a. 最左推导的逆过程

b. 最右推导的逆过程

c. 规范推导

d. 最左归约的逆过程

[解答]

1、选c。

2、选a。

3、选c。

4、虽然a与b没有优先关系,但构造优先函数后,a与b就一定存在优先关系了。所以,由f(a)>g)(b)或f(a)

5、如果文法G无二义性,则最左推导是先生长右边的枝叶:对于d,如果有两个不同的是了左推导,则必然有二义性。故选a。

6、选c。

7、由图2-8-1的语法树和优先关系可以看出应选b。

8、规范推导是最左推导,故选d。

9、由T→T,…和T→(…得FIRSTVT(T))={(,,)};

由T→S得FIRSTVT(S)FIRSTVT(T),而FIRSTVT(S)={b,∧,(};即

FIRSTVT(T)={b,∧,(,,};因此选c。

10、d 11、c 12、b 13、b 14、b

二、多项选择题

1、下面哪些说法是错误的。

a. 有向图是一个状态转换图

b. 状态转换图是一个有向图

c.有向图是一个DFA 可以用状态转换图表示

2、对无二义性文法来说,一棵语法树往往代表了。

a. 多种推导过程

b. 多种最左推导过程

c.一种最左推导过程

d.仅一种推导过程

e.一种最左推导过程

3、如果文法G存在一个句子,满足下列条件之一时,则称该文法是二义文法。

a. 该句子的最左推导与最右推导相同

相关文档
最新文档