文档库 最新最全的文档下载
当前位置:文档库 › 编译原理期末练习题汇总

编译原理期末练习题汇总

编译原理期末练习题汇总
编译原理期末练习题汇总

“编译原理”练习题

一、选择题

1、汇编程序是将 a 翻译成 b ,编译程序是将 c 翻译成 d .

a.汇编语言程序

b.机器语言程序

c.高级语言程序

d. a 或者 b

e. a 或者 c

f. b 或者 c

2、下面关于解释程序的描述正确的是 b .

(1) 解释程序的特点是处理程序时不产生目标代码

(2) 解释程序适用于COBOL 和 FORTRAN 语言

(3) 解释程序是为打开编译程序技术的僵局而开发的

a. (1)(2)

b. (1)

c. (1)(2)(3)

d.(2)(3)

3、高级语言的语言处理程序分为解释程序和编译程序两种.编译程序有五个阶段,而解释程序通常缺少 (1)e 和 (1)b .其中, (1)e 的目的是使最后阶段产生的目标代码更为高效. 与编译系统相比,解释系统 (2)d .解释程序处理语言时,大多数采用的是 (3)b 方法. (4)a 就是一种典型的解释型语言.

(1): a. 中间代码生成 b.目标代码生成 c.词法分析 d.语法分析 e.代码优化

(2): a.比较简单,可移植性好,执行速度快

b.比较复杂,可移植性好,执行速度快

c.比较简单,可移植性差,执行速度慢

d.比较简单,可移植性好,执行速度慢

(3): a.源程序命令被逐个直接解释执行 b.先将源程序转化为之间代码,再解释执行

c.先将源程序解释转化为目标程序,在执行

d.以上方法都可以

(4) : a. BASIC b. C c. FORTRAN d. PASCAL

4、用高级语言编写的程序经编译后产生的程序叫 b .用不同语言编写的程序产生 b 后,可用 g 连接在一起生成机器可执行的程序.在机器中真正执行的是 e .

a. 源程序

b. 目标程序

c. 函数

d. 过程

e. 机器指令代码

f. 模块

g. 连接程序

h.程序库

5、要在某一台机器上为某种语言构造一个编译程序,必须掌握下述三方面的内容: c ,

d , f .

a. 汇编语言

b. 高级语言

c. 源语言

d. 目标语言

e. 程序设计方法

f. 编译方法

g. 测试方法

h. 机器语言

6、由于受到具体机器主存容量的限制,编译程序几个不同阶段的工作往往被组合成

(1)d ,

诸阶段的工作往往是 (2)d 进行的.

(1) a. 过程 b. 程序 c. 批量 d.遍

(2) a. 顺序 b. 并行 c. 成批 d.穿插

7、编译过程中,语法分析器的任务就是 b .

(1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的

(3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构

8、编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过 b 这几步.

(1) 编辑 (2) 编译 (3) 连接 (4) 运行

9、编译程序必须完成的工作有 a .

(1) 词法分析 (2) 语法分析 (3) 语义分析

(4) 代码生成 (5) 之间代码生成 (6) 代码优化

a. (1)(2)(3)(4)

b. (1)(2)(3)(4)(5)

c. (1)(2)(3)(4)(5)(6)

d. (1)(2)(3)(4)(6)

e. (1)(2)(3)(5)(6)

10、编译程序是一种 B 。

A. 汇编程序

B. 翻译程序

C. 解释程序

D. 目标程序

11、按逻辑上划分,编译程序第二步工作是 C 。

A. 语义分析

B. 词法分析

C. 语法分析

D. 代码优化

12、通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标

代码生成等五个部分,还应包括 C 。

A.模拟执行器

B.解释器

C.表格处理和出错处理

D.符号执行器

13、文法G所描述的语言是 C 的集合。

A.文法G的字母表V中所有符号组成的符号串

B.文法G的字母表V的闭包V*中的所有符号串

C.由文法的开始符号推出的所有终极符串

D.由文法的开始符号推出的所有符号串

14、乔姆斯基(Chomsky)把文法分为四种类型,即0型、1型、2型、3型。其中3型文法

是 B 。

A.短语文法

B.正则文法

C.上下文有关文法

D.上下文无关文法

15、文法G[N]=({b},{N,B},N,{N→b│bB,B→bN}),该文法所描述的语言是

C 。

A. L(G[N])={b i│i≥0}

B. L(G[N])={b2i│i≥0}

C. L(G[N])={b2i+1│i≥0}

D. L(G[N])={b2i+1│i≥1}

16、一个句型中的最左 B 称为该句型的句柄。

可选项有:

A. 短语

B. 简单短语

C. 素短语

D. 终结符号

17、设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈V*),则称x是文法G 的一个 B 。

A. 候选式

B. 句型

C. 单词

D. 产生式

18、一个上下文无关文法G包括四个组成部分,它们是:一组非终结符号,一组终结符号,

一个开始符号,以及一组 D 。

A. 句子

B. 句型

C. 单词

D. 产生式

19、文法G[E]:

E→T∣E+T

T→F∣T﹡F

F→a∣(E)

该文法句型E+F﹡(E+T)的简单短语是下列符号串中的 B 。

①(E+T)②E+T ③F ④ F﹡(E+T)

可选项有:

A) ①和③ B) ②和③ C) ③和④ D) ③

20、若一个文法是递归的,则它所产生的语言的句子 A 。

A.是无穷多个

B.是有穷多个

C.是可枚举的

D.个数是常量

21、词法分析器用于识别 C 。

A. 句子

B. 句型

C. 单词

D. 产生式

22、在语法分析处理中,FIRST集合、FOLLOW集合、SELECT集合均是 B 。

A. 非终极符集

B.终极符集

C. 字母表

D. 状态集

23、编译程序中语法分析器接收以 A 为单位的输入。

A. 单词

B. 表达式

C. 产生式

D. 句子

24、在自底向上的语法分析方法中,分析的关键是 A 。

A. 寻找句柄

B. 寻找句型

C. 消除递归

D. 选择候选式

25、在LR分析法中,分析栈中存放的状态是识别规范句型 C 的DFA状态。

A.句柄

B. 前缀

C. 活前缀

D. LR(0)项目

26、词法分析的任务是(A)

A.识别单词 B.分析句子的含义 C.识别句子 D.生成目代码

27、代码优分的目的是(C)

A.节省时间

B.节省空间

C.节省时间和空间

D.把编译程序进行等价交换

28、代码生成阶段的主要任务是(C)

A.把高级语言翻译成汇编语言

B.把高级语言翻译成机器语言

C.把中间代码变换成依赖具体机器的目标代码

D.把汇编语言翻译成机器语言

29、在LR分析法中,分析栈中存放的状态是识别规范句型 C 的DFA状态。

A.句柄

B. 前缀

C. 活前缀

D. LR(0)项目

30、一个上下文无关文法G包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 D 。

A. 句子

B. 句型

C. 单词

D. 产生式

二、是非判断题

1、正规文法产生的语言都可以用上下文无关文法来描述。(×)

2、如果一个文法是递归的,则其产生的语言的句子是无穷个。(√)

3、文法的二义性和语言的二义性是两个不同的概念。(√)

4、一个LL( l)文法一定是无二义的。(√)

5、在规范规约中用最左素短语来刻划可归约串。(×)

6、目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。(√)

7、编译程序是对汇编程序的翻

译。(×)

8、计算机高级语言翻译成低级语言只有解释一种方式。(×)

9、在编译中进行语法检查的目的是为了发现程序中所有错误。(×)

10、甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完

全相同。(×)

11、正则文法其产生式为A→a,A→Bb, A,B∈V N,a、b∈V T。(√)

12、每个文法都能改写为LL(1)文法。(×)

13、递归下降法允许任一非终极符是直接左递归的。(×)

14、算符优先关系表不一定存在对应的优先函数。(√)

15、自底而上语法分析方法的主要问题是候选式的选择。(×)

16、LR法是自顶向下语法分析方法。(×)

18、若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄。(×)

19、一个句型的句柄一定是文法某产生式的右部。(√)

20、在程序中标识符的出现仅为使用性的。(×)

21、在程序中标识符的出现仅为使用性的。(×)

三、名词解释题

1、扫描遍:

指编译程序对源程序或中间代码程序从头到尾扫描一次。

2、短语:

设G[Z]是给定文法, w=xuy∈V+,为该文法的句型,如果满足下面两个条件:

① Z xUy;

② U u;

则称句型xuy 中的子串u是句型xuy的短语。

3、简单短语:

设G[Z]是给定文法, w=xuy∈V+,为该文法的句型,如果满足下面两个条件:

① Z xUy;

② U u;

则称句型xuy 中的子串u是句型xuy的简单短语(或直接短语)。

4、句柄:

R

一个句型中的最左简单短语称为该句型的句柄。 5、语法分析:

按文法的产生式识别输入的符号串是否为一个句子的分析过程。

6、活前缀:若S′ αA ω αβω是文法G′中的一个规范推导,G′是G 的拓广文法,符号串γ是αβ的前缀,则称γ是G 的,也是G′的一个活前缀。其中 S'为文法开

始符号。或:可归前缀的任意首部。 7、可归前缀:

是指规范句型的一个前缀,这种前缀不含句柄之后的任何符号。 8、LR(0)项目:

把产生式右部某位置上标有圆点的产生式称为相应文法的一个LR(0)项目。 9、语义规则:

对于文法的每个产生式都配备了一组属性的计算规则,称为语义规则。 10、翻译方案:

将属性文法中的语义规则用花括号{ }括起来,插在产生式右部的合适地方,指明语义规则的计算次序,陈述一些细节,得到一种语义动作与语法分析交错的表示方法,以表述语义动作在语法分析过程中的执行时刻,称之为翻译方案。 11、后缀式:

一种把运算量(操作数)写在前面把算符写在后面(后缀)的表示法。即 一个表达式E 的后缀形式可以如下定义:

(1) 如果E 是一个变量或常量,则E 的后缀式是E 自身。

(2) 如果E 是E 1 op E 2形式的表达式,这里op 是任何二元操作符,则E 的后缀式为E 1’

E 2’op,这里E 1’和E 2’分别为E 1和E 2的后缀式。

(3) 如果E 是(E 1)形式的表达式,则E 1的后缀式就是E 的后缀式。

12、过程活动:

一个过程的活动指的是该过程的一次执行。就是说,每次执行一个过程体,产生该过程体的一个活动。 13、活动记录:

为了管理过程在一次执行中所需要的信息,使用一个连续的存储块,这样一个连续的存储块称为活动记录。 14、活动的生存期:

指的是从执行某过程体第一步操作到最后一步操作之间的操作序,包括执行过程时调用其它过程花费的时间。 15、 基本块的DAG :

一个基本块的DAG 是一种其结点带有下述标记或附加信息的DAG 。

(1)图的叶结点(没有后继的结点)以一标识符(变量名)或常数作为标记,表示该结点代表该变量或常数的值。如果叶结点用来代表某变量A 的地址,则用addr (A )作为该结点的标记。通常把叶结点上作为标记的标识符加上下标0,以表示它是该变量的初值。

R

(2)图的内部结点(有后继的结点)以一运算符作为标记,表示该结点代表应用该运算符对其后继结点所代表的值进行运算的结果。

(3)图中各个结点上可能附加一个或多个标识符,表示这些变量具有该结点所代表的值。

16、S-属性文法:?什么是L-属性文法?它们之间有什么关系?

S-属性文法是只含有综合属性的属性文法。

17、L-属性文法:

L-属性文法要求对于每个产生式A X1X2…Xn,其每个语义规则中的每个属性或者是综合属性,或者是Xj的一个继承属性,且该属性仅依赖于:

(1)产生式Xj的左边符号X1,X2…Xj-1的属性;

(2)A的继承属性。

18、语法制导翻译:

语法制导翻译是对前后文无关文法的扩充,即对文法中的每个产生式都附加一个语义动作或语义子程序,且在语法分析过程中,每当需要使用一个产生式进行推导或归约时,语法分析程序除执行相应的语法分析动作外,还要执行相应的语义动作或调用相应的语义子程序,完成相应的语义分析和翻译工作。

19、词法分析

词法分析的主要任务是从左向右扫描每行源程序的符号,按照记法规则从构成源程序的字符串中识别出一个个具有独立意义的最小语法单位,并转换成统一的内部表示,送给语法分析程序。

四、简答计算题

1、已知文法G[E]为:

E→T|E+T|E-T

T→F|T*F|T/F

F→(E)|i

①该文法的开始符号(识别符号)是什么?

②请给出该文法的终结符号集合V T和非终结符号集合V N。

③找出句型T+T*F+i的所有短语、简单短语和句柄。

答:①该文法的开始符号(识别符号)是E。

②该文法的终结符号集合V T={+、-、*、/、(、)、i}。

非终结符号集合V N={E、T、F}。

③句型T+T*F+I的短语为i、T*F、第一个T、T+T*F+i;

简单短语为i、T*F、第一个T;句柄为第一个T。

2、已知文法G[S]为:

S→dAB

A→aA|a

B→Bb|ε

① G[S]产生的语言是什么?

② G[S]能否改写为等价的正规文法?

答:① G[S]产生的语言是L(G[S])={da n b m

│n ≥1,m ≥0}。

② G[S]能改写为等价的正规文法,其改写后的等价的正规文法G[S ˊ]为: S ˊ→dA A →aA|aB|a B →bB|b

3、简述DFA 与NFA 有何区别

答:DFA 与NFA 的区别表现为两个方面:一是NFA 可以若干个开始状态,而DFA 仅只一个开始状态。另一方面,DFA 的映象M 是从K ×∑到K ,而NFA 的映象M 是从K ×∑到K 的子集,即映象M 将产生一个状态集合(可能为空集),而不是单个状态。 4、试给出非确定自动机的定义。

答:一个非确定的有穷自动机(NFA )M 是一个五元组:M=(K ,Σ,S ,P )。

其中:

1. K 是一个有穷集,它的每个元素称为一个状态;

2. Σ是一个有穷字母表,它的每个元素称为一个输入符号,所以也称Σ为输入符号表;

3. S ﹙K 是一个非空初态集;

4. P 是状态转换函数,是在K ×Σ*→K 的子集的映射,即,P: K ×Σ*→2K ;表明在某状态下对于某输入符号可能有多个后继状态。

5、为正规式(a|b )*

a(a|b) 构造一个等价的确定的有限自动机。

答:

6、给定下列自动机,将其转换为确定的自动机。

答:(1)

带―号的结点为终止状态

― ― 带―号的结点为终止状态

其中:开始状态:0

终止状态:2

b

7、 给定下列自动机:

(1)把此自动机转换为确定自动机DFA 。 (2)给出此DFA 的正则表达式。 答:(1): 有状态矩阵如图:

― + 注:带+号的结点为初始状态; 带―号的结点为终止状态

a b ?0 01 2 01 01 2 -2 1 2 1 2

a b

?0 0,1 2 1 2 -2 1 2

?

极小化后:

(2)此DFA的正则表达式为: (aa*b∣b)(b∣ab)*或 a*b(b∣ab)*。

4-13.消除下列文法G[E]的左递归。

E→E-T∣T

T→T/F∣F

F→( E )∣i

答:

消除文法G[E]的左递归后得到:

E→TE’

E’→ -T E’∣ε

T→FT’

T’→/FT’∣ε

F→( E )∣i

8、在LL(1)分析法中,LL分别代表什么含义?

答:第一个L代表从左到右的扫描,第二个L代表每次进行最左推导。

9、自顶向下分析思想是什么?

答:从开始符出发导出句型并一个符号一个符号地与给定终结符串进行匹配。如果全部匹配成功,则表示开始符号可推导出给定的终结符串。因此判定给定终结符号串是正确句子。

10、自顶向下的缺点是什么?

答:在推导过程中,如果对文法不做限制。那么产生式的选择成为无根据的,只好一一去试所有可能的产生式,直至成功为止。这种方法的致命弱点是不断地回溯,大大影响速度。

11、LL(1)文法的定义是什么?

答:一个上下文无关文法是LL(1)文法的充分必要条件是每个非终结符A的两个不同产生式,A→α,A→β;满足SELECT(A →α)∩SELECT(A →β)=Ф。其中,α、β不能同时ε。

12、什么是文法的左递归?

答:一个文法含有下列形式的产生式之一时:

1)A→Aβ,A∈VN,β∈V*

2)A→Bβ,B→Aα,A、B∈VN,α、β∈V*

则称该文法是左递归的。

13、递归下降法的主要思想是什么?

答:对每个非终结符按其产生式结构写出相应语法分析子程序。因为文法递归相应子程序也递归,子程序的结构与产生式结构几乎一致。所以称此种方法称为递归子程序法或递归下降法。

1. Z →C S

2. C →if E then 3. S →A =E 4. E →E ∨A 5. E →A 6. A →i

其中:Z 、C 、S 、A 、E ∈V N ; if 、then 、=、∨、i ∈V T

14、自底向上分析法的原理是什么?

答:在采用自左向右扫描,自底向上分析的前提下,该类分析方法是从输入符号串入手,通

过反复查找当前句型的句柄(最左简单短语),并使用文法的产生式把句柄归约成相应的非终极符来一步步地进行分析的。最终把输入串归约成文法的开始符号,表明分析成功。

15、给定文法G[Z]:

a) 构造此文法的LR(0)项目集规范族,并给出识别活前缀的DFA 。 b) 构造其SLR (1)分析表。

答:1.首先拓广文法:在G 中加入产生式0.Z ′→Z ,然后得到新的文法G ′,再求G ′的

识别全部活前缀的DFA :

I 0:Z ′→.Z

Z →.C S

C →.if E then I 1:Z ′→Z . I 2:Z →C .S

S →.A =E A →.i

I 3:C →if .E then

E →.E ∨A E →.A A →.i I 4:Z →C S . I :S →A .=E

I 7:C →if E .then

E →E .∨A I 9:S →A =.E

E →.E ∨A E →.A A →.i

I 10:C →if E then . I 11:E →E ∨.A

A →.i I 12:S →A =E .

E →E .∨A I 13:E →E ∨A .

S →a A A →Ab A →b

0.S ′→S

1.S →aA

2.A →Ab

3.A →b

16、 设有文法G[S]:

求识别该文法所有活前缀的DFA 。 答:

(1).首先拓广文法:

在G 中加入产生式0.S ′→S

(2).再求G ′的识别全部活前缀的DFA : 17、语法制导翻译方法的基本思想是什么?

答:在语法分析过程中,每当使用一条产生式进行推导或归约时,就执行该产生式所对应的

语义动作进行属性计算,完成对输入符号串的翻译。

18、在一个属性文法中,对应于每个产生式A →a 都有一套与之相关联的语义规则,每条规则的形式为

b :=f (c1,c2…,ck ),其中对于b 的要求是什么? 答:语义规则中的左部属性变量b 被规定为只能是下述两种变量:

① 对应产生式左部符号的综合属性变量;

②对应产生式右部符号的继承属性变量。

19、对于文法G(E):

E→T|E+T

T→F|T*F

F→(E)|i

1)写出句型(T*F+i)的最右推导并画出语法树。

答:

1.)

E?T?F?(E) ?(E+T) ?(E+F)

?(E+i) ?(T+i) ?(T*F+i)

2)

短语:(T*F+i), T*F+i, T*F, i

直接短语:T*F, i

句柄:T*F

20、构造下面文法的LL(1)分析表。

S → a B S | b A S | ε

A → b A A | a

B → a B B | b

答:

五、综合题

1、通过构造识别活前缀的DFA和构造分析表,来证明文法E → E + id | id是SLR(1)文法。

答:先给出接受该文法活前缀的DFA如下:

表中没有多重定义的条目,因此该文法是SLR(1)的。

2、为下面文法构造规范LR(1)分析表,画出像教材上图3.20这样的状态转换图就可以了。

S →V = E | E

V →*E | id

E →V

(2)上述状态转换图有同心项目集吗?若有,合并同心项目集后是否会出现动作冲突?答:

(1)状态转换图如下:

(2)合并同心项目集(I4和I11,I5和I12,I7和I13,I8和I10)后没有动作冲突。

3、给定文法:

E → E + id | id

要求:

(a)构造识别活前缀的DFA;

(b)构造分析表,并说明该文法是否为SLR(1)文法;

(c) 假定输入串为id+id+id,请给出分析过程。

答:先给出接受该文法活前缀的DFA如下:

(a):

(b):

构造SLR分析表如下:

表中没有多重定义的条目,因此该文法是SLR(1)的。

编译原理期末考试习题及答案

一、填空题|(每题4分,共20分) 1. 乔母斯基定义的3型文法(线性文法)产生式形式 A→Ba|a,或A→aB|a,A,B∈Vn, a,b∈Vt 。 2.语法分析程序的输入是单词符号,其输出是语法单位。 3 型为 B → .aB 的LR(0)项目被称为移进项目,型为 B → a.B 的LR(0) 项目被称为待约项目, 4.在属性文法中文法符号的两种属性分别为继承属性和综合属性。 5、运行时存贮管理方案有静态存储分配、动态存储分配和堆式存储分配和方案。 二.已知文法 G(S) (1) E → T | E+T (2) T → F | F*F (3) F →(E)| i (1)写出句型(T*F+i)的最右推到并画出语法树。(4分) (2)写出上述句型的短语,直接短语和句柄。(4分) 答:(1)最右推到(2分) E ==> T ==> F ==> (E) ==> (E+T) ==> (E+F) ==> (E+i) ==> (T+i) ==> (T*F+i) (2) 语法树(2分) (3)(4分) 短语:(T*F+i),T*F+i ,T*F , i 直接短语:T*F , i 句柄:T*F 三. 证明文法G(S) :S → SaS |ε是二义的。(6分) 答:句子aaa对应的两颗语法树为:

因此,文法是二义文法 四.给定正规文法G(S): (1) S → Sa | Ab |b (2) A → Sa 请构造与之等价的DFA。(6分) 答:对应的NFA为:(6分) 状态转换表: a b {F} Φ{S} {S} {S,A} Φ {S,A} {S,A} {S} 五. 构造识别正规语言b*a(bb*a)*b* 最小的DFA(要求写出求解过程)。(15分)答:(1)对应的NFA(5分) a b {0} {1,3} {0} {1,3} Φ{2,3} {2,3} {1,3} {2,3} (5分) 六. 已知文法G(S) : (1) S → ^ | a | (T) (2) T → T,S | S 试:(1)消除文法的左递归;(4分) (2)构造相应的first 和 follow 集合。(6分) 答:(1)消除文法的左递归后文法 G’(S)为: (1) S → ^ | a | (T)

最新编译原理试题汇总+编译原理期末试题(8套含答案+大题集)

编译原理考试题及答案汇总一、选择 1.将编译程序分成若干个“遍”是为了_B__。 A . 提高程序的执行效率 B.使程序的结构更加清晰 C. 利用有限的机器内存并提高机器的执行效率 D.利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指__C__。 A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。 C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等 3.中间代码生成时所依据的是 _C_。 A.语法规则 B.词法规则 C.语义规则 D.等价变换规则 4.后缀式 ab+cd+/可用表达式__B_来表示。 A. a+b/c+d B.(a+b)/(c+d) C. a+b/(c+d) D. a+b+c/d 6.一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化,目标代码生成等五个部分。 A.( ) 语法分析 B.( )文法分析 C.( )语言分析 D.( )解释分析 7.词法分析器用于识别__C___。 A.( ) 字符串 B.( )语句 C.( )单词 D.( )标识符 8.语法分析器则可以发现源程序中的___D__。 A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正 D.( ) 语法错误 9.下面关于解释程序的描述正确的是__B___。 (1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的 A.( ) (1)(2) B.( ) (1) C.( ) (1)(2)(3) D.( ) (2)(3) 10.解释程序处理语言时 , 大多数采用的是__B___方法。 A.( ) 源程序命令被逐个直接解释执行 B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以 11.编译过程中 , 语法分析器的任务就是__B___。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4)C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 12.编译程序是一种___C__。 A. ( ) 汇编程序 B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 13.文法 G 所描述的语言是_C____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 14.文法分为四种类型,即 0 型、1 型、2 型、3 型。其中 3 型文法是___B__。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法15.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 __D___。 A.( ) 句子 B.( ) 句型 C.( ) 单词 D.( ) 产生式

四川大学编译原理期末复习总结

一、简答题 1.什么是编译程序 答:编译程序是一种将高级语言程序(源程序)翻译成低级语言(目标程序)的程序。 将高级程序设计语言程序翻译成逻辑上等价的低级语言(汇编语言,机器语言)程序的翻译程序。 2.请写出文法的形式定义 答:一个文法G抽象地表示为四元组 G=(Vn,Vt,P,S) –其中Vn表示非终结符号 –Vt表示终结符号,Vn∪Vt=V(字母表),Vn∩Vt=φ –S是开始符号, –P是产生式,形如:α→β(α∈V+且至少含有一个非终结符号,β∈V*) 3.语法分析阶段的功能是什么 答:在词法分析的基础上,根据语言的语法规则,将单词符号串分解成各类语法短语(例:程序、语句、表达式)。确定整个输入串是否构成语法上正确的程序。 4.局部优化有哪些常用的技术 答:优化技术1—删除公共子表达式 优化技术2—复写传播 优化技术3—删除无用代码 优化技术4—对程序进行代数恒等变换(降低运算强度) 优化技术5—代码外提 优化技术6—强度削弱 优化技术7—删除归纳变量 优化技术简介——对程序进行代数恒等变换(代数简化) 优化技术简介——对程序进行代数恒等变换(合并已知量) 5.编译过程分哪几个阶段 答:逻辑上分五个阶段:词法分析、语法分析、语义分析与中间代码生成、代码优化、目标代码生成。每个阶段把源程序从一种表示变换成另一种表示。 6. 什么是文法 答:文法是描述语言的语法结构的形式规则。是一种工具,它可用于严格定义句子的结构; 用有穷的规则刻划无穷的集合;文法是被用来精确而无歧义地描述语言的句子的构成方式;文法描述语言的时候不考虑语言的含义。 7. 语义分析阶段的功能是什么 答:对语法分析所识别出的各类语法范畴分析其含义,进行初步的翻译(翻译成中间代码); 并对静态语义进行审查。 8.代码优化须遵循哪些原则 答:等价原则:不改变运行结果 有效原则:优化后时间更短,占用空间更少 合算原则:应用较低的代价取得较好的优化效果 9.词法分析阶段的功能是什么 答:

编译原理期末复习

编译原理期末复习 鉴于编译原理马上就要期末考试,我将手中集中的一些资料上的题目进行了整理归类,每种类型题目给出了所涉及到的基本知识,然后对每类题目中的第一道例题进行了做法进行了讲解,剩下的例题请给大家作为练习,答案也都给出,希望对大家复习有所帮助,最后由于时间很紧,整理的有些仓促,整理中难免有遗漏或错误,请大家见谅。 注:下面出现的字母中,若无特别说明,小写英文字母为终结符,大写英文字母为非终结符,希腊字母为终结符与非终结符的任意组合。 1、简答题(或者名词解释) 下面涉及到的概念中,加下划线的都是在以往一些试卷中出现的原题,务必掌握。 注:这类题目老师说答案不会超过一百个字,否则写的再多也不给分,有些点到即可,不要重复啰嗦。(1)简述编译程序的概念及其构成 答:1)编译程序:它特指把某种高级程序设计语言翻译成等价的低级程序设计语言的翻译程序。 2)构成: (2)简述词法分析阶段的主要任务(也有可能问语法分析阶段主要任务)答:词法分析的任务是输入源程序,对源程序进行扫描,识别其中的单词符号,把字符串形式的源程序转换成单词符号形式的源程序。 语法分析的主要任务是对输入的单词符号进行语法分析(根据语法规则进行推导或者归约),识别各类语法单位,判断输入是不是语法上正确的程序 (3) 简述编译程序的构造过程(这个大家看看,是对(1)和(2)的综合) 答:1)构造词法分析器:用于输入源程序进行词法分析,输出单词符号; 2)构造语法分析器:对输入的单词符号进行语法分析,识别各类语法单位,判断输入是不是语法上正确的程序 3)构造语义分析和中间代码产生器:按照语义规则对已归约出的语法单位进行语义分析并把它们翻译成中间代码。 4)构造优化器:对中间代码进行优化。 5) 构造目标代码生成器:把中间的代码翻译成目标程序。 6) 构造表格管理程序:登记源程序的各类信息和编译各阶段的进展情况。 7)构造错误处理程序:对出错进行处理。 (4) 说明编译和解释的区别: 1)编译要程序产生目标程序,解释程序是边解释边执行,不产生目标程序; 2)编译程序运行效率高而解释程序便于人机对话。 (5)文法:描述语言语法结构的形式规则,一般用一个四元式表示: G=(V T,V N,S,P),其中V T:终结符集合(非空) V N:非终结符集合(非空),且V T ?V N=? S:文法的开始符号,S?V N P:产生式集合(有限)。

编译原理期末考试题目及答案

一、填空题(每空2分,共20分) 1.编译程序首先要识别出源程序中每个单词,然后再分析每个句子并翻译其意义。 2.编译器常用的语法分析方法有自底向上和自顶向下两种。 3.通常把编译过程分为分析前端与综合后端两大阶段。词法、语法和语义分析是对源程序的分析,中间代码生成、代码优化与目标代码的生成则是对源程序的综合。 4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即静态存储分配方案和动态存储分配方案。 5.对编译程序而言,输入数据是源程序,输出结果是目标程序。 1.计算机执行用高级语言编写的程序主要有两种途径:解释和编译。 2.扫描器是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。 3.自下而上分析法采用移进、归约、错误处理、接受等四种操作。 4.一个LL(1)分析程序需要用到一张分析表和符号栈。 5.后缀式abc-/所代表的表达式是a/(b-c)。 二、单项选择题(每小题2分,共20分) 1.词法分析器的输出结果是__C。 A.单词的种别编码B.单词在符号表中的位置 C.单词的种别编码和自身值D.单词自身值 2.正规式M 1 和M 2 等价是指__C_。 A.M1和M2的状态数相等 B.M1和M2的有向边条数相等 C.M1和M2所识别的语言集相等D.M1和M2状态数和有向边条数相等 3.文法G:S→xSx|y所识别的语言是_C____。 A.xyx B.(xyx)* C.xnyxn(n≥0) D.x*yx* 4.如果文法G是无二义的,则它的任何句子α_A____。 A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同 C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握____D__。 A.源程序B.目标语言C.编译方法D.以上三项都是 6.四元式之间的联系是通过__B___实现的。 A.指示器B.临时变量C.符号表D.程序变量 7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为__B___。 A.┐AB∨∧CD∨B.A┐B∨CD∨∧ C.AB∨┐CD∨∧D.A┐B∨∧CD∨ 8. 优化可生成__D___的目标代码。 A.运行时间较短 B.占用存储空间较小 C.运行时间短但占用内存空间大D.运行时间短且占用存储空间小 9.下列___C___优化方法不是针对循环优化进行的。 A. 强度削弱B.删除归纳变量C.删除多余运算D.代码外提 10.编译程序使用_B_区别标识符的作用域。 A. 说明标识符的过程或函数名B.说明标识符的过程或函数的静态层次 C.说明标识符的过程或函数的动态层次 D. 标识符的行号 三、判断题(对的打√,错的打×,每小题1分,共10分) 2.一个有限状态自动机中,有且仅有一个唯一的终态。x

编译原理试题(卷)汇总-编译原理期末试题(卷)(8套含答案解析-大题集)

编译原理考试题及答案汇总 一、选择 1.将编译程序分成若干个“遍”是为了_B__。 A . 提高程序的执行效率 B.使程序的结构更加清晰 C. 利用有限的机器内存并提高机器的执行效率 D.利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指__C__。 A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。 C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等 3.中间代码生成时所依据的是 _C_。 A.语法规则 B.词法规则 C.语义规则 D.等价变换规则 4.后缀式 ab+cd+/可用表达式__B_来表示。 A. a+b/c+d B.(a+b)/(c+d) C. a+b/(c+d) D. a+b+c/d 6.一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化,目标代码生成等五个部分。 A.( ) 语法分析 B.( )文法分析 C.( )语言分析 D.( )解释分析 7.词法分析器用于识别__C___。 A.( ) 字符串 B.( )语句 C.( )单词 D.( )标识符 8.语法分析器则可以发现源程序中的___D__。 A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正 D.( ) 语法错误 9.下面关于解释程序的描述正确的是__B___。 (1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的 A.( ) (1)(2) B.( ) (1) C.( ) (1)(2)(3) D.( ) (2)(3) 10.解释程序处理语言时 , 大多数采用的是__B___方法。 A.( ) 源程序命令被逐个直接解释执行 B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以 11.编译过程中 , 语法分析器的任务就是__B___。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4)C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 12.编译程序是一种___C__。 A. ( ) 汇编程序 B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 13.文法 G 所描述的语言是_C____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 14.文法分为四种类型,即 0 型、1 型、2 型、3 型。其中 3 型文法是___B__。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法15.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 __D___。 A.( ) 句子 B.( ) 句型 C.( ) 单词 D.( ) 产生式 16.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括_C____。

期末考试编译原理试卷及答案

一. 填空题(每空2分,共20分) 1. 不同的编译程序关于数据空间的存储分配策略可能不同,但大部分编译中采用的方案有两种:静 态存储分配方案和动态存储分配方案,而后者又分为(1) 和 (2) 。 2. 规范规约是最(3)规约。 3. 编译程序的工作过程一般划分为5个阶段:词法分析、(4) 、语义分析与中间代码生成,代码优化及(5) 。另外还有(6)和出错处理。 4.表达式x+y*z/(a+b)的后缀式为 (7) 。 5.文法符号的属性有综合属性和 (8)。 6.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组a[1..15,1..20]某个元素a[i ,j]的地址 计算公式为(9)。 7.局部优化是局限于一个(10)范围内的一种优化。 二. 选择题(1-6为单选题,7-8为多选题,每问2分,共20分) 1. 一个上下文无关文法G 包括四个组成部分:一组终结符,一组非终结符,一个( ),以及一组 ( )。 A . 字符串 B . 产生式 C . 开始符号 D . 文法 2.程序的基本块是指( )。 A . 一个子程序 B . 一个仅有一个入口和一个出口的语句 C . 一个没有嵌套的程序段 D . 一组顺序执行的程序段,仅有一个入口和一个出口 3. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于( )分析方法。 A . 自左向右 B . 自顶向下 C . 自底向上 D . 自右向左 4.在通常的语法分析方法中,( )特别适用于表达式的分析。 A . 算符优先分析法 B . LR 分析法 C . 递归下降分析法 D . LL (1)分析法 5.经过编译所得到的目标程序是( )。 A . 四元式序列 B . 间接三元式序列 C . 二元式序列 D . 机器语言程序或汇编语言程序 6. 一个文法所描述的语言是( );描述一个语言的文法是( )。 A . 唯一的 B . 不唯一的 C . 可能唯一,也可能不唯一 7. 如果在文法G 中存在一个句子,当其满足下列条件( )之一时,则称该文法是二义文法。 A . 其最左推导和最右推导相同 B . 该句子有两个不同的最左推导 C . 该句子有两个不同的最右推导 D . 该句子有两棵不同的语法树

编译原理期末复习题

3.2是非判断,对下面的述,正确的在述后的括号写T,否则写F。 (1)有穷自动机接受的语言是正则语言。() (2)若r1和r2是Σ上的正规式,则r1|r2也是。() (3)设M是一个NFA,并且L(M)={x,y,z},则M的状态数至少为4个。() (4)令Σ={a,b},则Σ上所有以b为首的字构成的正规集的正规式为b*(a|b)*。() (5)对任何一个NFA M,都存在一个DFA M',使得L(M')=L(M)。() (6)对一个右线性文法G,必存在一个左线性文法G',使得L(G)=L(G'),反之亦然。() 答案 (1) T (2) T (3) F (4) F (5) T (6) T 3.3描述下列各正规表达式所表示的语言。 (1) 0(0|1)*0 (2) ((ε|0)1*)* (3) (0|1)*0(0|1)(0|1) (4) 0*10*10*10* (5) (00|11)*((01|10)(00|11)*(01|10)(00|11)*)* 答案 (1) 以0开头并且以0结尾的,由0和1组成的符号串。 (2) {α|α∈{0,1}*} (3) 由0和1组成的符号串,且从右边开始数第3位为0。 (4) 含3个1的由0和1组成的符号串。{α|α∈{0,1}+,且α中含有3个1 } (5) {α|α∈{0,1}*,α中0和1为偶数} 3.4对于下列语言分别写出它们的正规表达式。 (1) 英文字母组成的所有符号串,要求符号串中顺序包含五个元音。 (2) 英文字母组成的所有符号串,要求符号串中的字母依照词典顺序排列。 (3) Σ={0,1}上的含偶数个1的所有串。 (4) Σ={0,1}上的含奇数个1的所有串。 (5) 具有偶数个0和奇数个1的有0和1组成的符号串的全体。 (6) 不包含子串011的由0和1组成的符号串的全体。 (7) 由0和1组成的符号串,把它看成二进制数,能被3整除的符号串的全体。 答案 (1) 令Letter表示除这五个元音外的其它字母。 ((letter)*A(letter)*E(letter)*I(letter)*O(letter)*U(letter))* (2) A*B*....Z* (3) (0|10*1)* (4) (0|10*1)*1

《编译原理》期末考试复习题

《编译原理》期末考试复习题 一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分) ×1.计算机高级语言翻译成低级语言只有解释一种方式。() ×2.在编译中进行语法检查的目的是为了发现程序中所有错误。() √3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。 () ×4.正则文法其产生式为 A->a , A->Bb, A,B∈VN , a 、b∈VT 。 () √5.每个文法都能改写为 LL(1) 文法。 () √6.递归下降法允许任一非终极符是直接左递归的。 () ×7.算符优先关系表不一定存在对应的优先函数。 () ×8.自底而上语法分析方法的主要问题是候选式的选择。 () ×9.LR 法是自顶向下语法分析方法。 () ×10.简单优先文法允许任意两个产生式具有相同右部。 () 三、填空题(每空1分,共10分) 1.编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,中间代码生成,代码优化等几个基本阶段,同时还会伴有__ ___和 ___ _。 表格管理出错处理_ 2.若源程序是用高级语言编写的,__ __是机器语言程序或汇编程序,则其翻译程序称为 __ __ 。 _目标程序_编译程序 3.编译方式与解释方式的根本区别在于__ __。 是否生成目标代码_ 4.对编译程序而言,输入数据是__ __, 输出结果是__ ___。 _源程序目标程序

5.产生式是用于定义__ __的一种书写规则。 _语法成分 6.语法分析最常用的两类方法是___ __和__ __分析法。 自上而下_自下而上 四、简答题(20分) 1. 什么是句子?什么是语言 ? 答:(1)设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈VT*),则称x是文法的一个句子。 (2)设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:L(G)={x│S x,x∈VT*} 。 一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分) ×1.对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。() ×2.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。() √3.递归下降分析法是自顶向上分析方法。() ×4.产生式是用于定义词法成分的一种书写规则。() √5.LR 法是自顶向下语法分析方法。() √6.在SLR (1 )分析法的名称中,S的含义是简单的。() ×7.综合属性是用于“ 自上而下” 传递信息。() ×8.符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型、种属、所占单元大小、地址等等。() ×9.程序语言的语言处理程序是一种应用软件。() ×10.解释程序适用于COBOL 和FORTRAN 语言。() 三、填空题(每空1分,共10分) 1.一个句型中的最左简单短语称为该句型的___句柄__。

(2020年整理)编译原理期末总复习题(含答案).doc

第八节习题一、单项选择题 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 二、多项选择题

编译原理考试试卷

南京工业大学继续教育学院编译原理期末考试试卷 (2012-2013学年) A卷 一、选择题(每题2分,共20分) 得分 1. 一个上下文无关文法G包括四个组成部分:一组终结符,一组非终结符,一个_____,以及一组产生式。 A.字符串 B.运算符号 C.开始符号 D.文法 2.程序的基本块是指_____。 A.一个子程序 B.一个仅有一个入口和一个出口的语句 C.一个没有嵌套的程序段 D.一组顺序执行的程序段,仅有一个入口和一 个出口 3. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于_____分析方法。 A.自左向右 B.自顶向下 C.自底向上 D.自右向左 4.经过编译所得到的目标程序是_____。 A.四元式序列 B.间接三元式序列 C.二元式序列 D.机器语言程序或汇编语言程序 5.运行阶段的存储组织与管理的目的是_____。 ①提高编译程序的运行速度②节省编译程序的存储空间 ③提高目标程序的运行速度④为运行阶段的存储分配做准备 A. ①② B. ②③ C. ③④ D. ④②6.词法分析器的输出结果是_____。 A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.( ) 单词的种别编码和自身值D.( ) 单词自身值 7.正规式M 1 和M 2 等价是指_____。

A.( ) M1和M2的状态数相等B.( ) M1和M2的有向边条数相等 C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等 8.文法G:S→xSx|y所识别的语言是_____。 A.( ) xyx B.( ) (xyx)* C.( ) xnyxn(n≥0) D.( ) x*yx* 9.语言是_____。 A.句子的集合B.产生式的集合 C.符号串的集合D.句型的集合 10.编译程序前三个阶段完成的工作是 A.词法分析、语法分析和代码优化 B.代码生成、代码优化和词法分析 C.词法分析、语法分析、语义分析和中间代码生成 D.词法分析、语法分析和代码优化 二、名词解释(每题2分,共20分) 得分 1.最左推导: 2.语法: 3.文法: 4.基本块: 5.语法制导翻译: 6.短语: 7.规范句型:

编译原理试题及答案(期末复习版).pdf

<编译原理>历年试题及答案 一.(每项选择 2 分,共 20 分)选择题 1.将 编译程序分成若干个“遍”是为了_b__。 a.提 高程序的执行效率 b.使程序的结构更加清晰 c. 利用有限的机器内存并提高机器的执行效率 d. 利用有限的机器内存但降低了机器的执行效率 2.构造编译程序应掌握__d__。 a.源程序 b.目标语言 c.编译方 法 d.以上三项都是 3.变量应 当 c_。 a.持有左值 b.持有右值 c.既持有左值又持有右值 d.既不持 有左值也不持有右值 4.编译程序绝大多数时间花在 _d___上。 a.出错处理 b.词法分析 c.目标代码 生成 d.管理表格 5.词法分析器的输 出结果是_c___。 a.单词的种别编码 b.单词在符号表中的位置 c.单词 的种别编码和自身值 d.单词自身值 6.正规式 MI 和 M2 等价是指__c__。 a. MI 和 M2 的状态数相等 b.Ml 和 M2 的有向弧条数相等。 C.M1 和 M2 所识别的语言集相等 d. Ml 和 M2 状态数和有向弧条数相等7.中间代码生成时所依据的是—c。 a.语法规则 b.词法规则c.语义规则 d.等价变换规则 8.后缀式 ab+cd+/可用表达式__b_来表示。 a. a+b/c+d b. (a+b)/(c+d) c. a+b/(c+d) d. a+b+c/d 9.程序所需 的数据空间在程序运行前就可确定,称为____c__管理技术。 a.动态存储 b.栈式存储 c.静态存储 d.堆式存储 10.堆式 动态分配申请和释放存储空间遵守___d_____原则。 a.先请先放 b.先请后放 c.后请先放 d.任意 二(每小题 10 分,共 80 分)简答题 1.画出编译程序的 总体结构图,简述各部分的主要功能。 2. 已知文法 G[E]: E→ET+|T T→TF* | F F→F^ | a 试证:FF^^*是文法的句型,指出该句型的短语、简单短语和句柄.

(完整word版)编译原理期末试题(二)含答案,推荐文档

《编译原理》期末试题(二) 一、是非题: 1.一个上下文无关文法的开始符,可以是终结符或非终结符。 ( ) 2.一个句型的直接短语是唯一的。() 3.已经证明文法的二义性是可判定的。() 4.每个基本块可用一个DAG表示。() 5.每个过程的活动记录的体积在编译时可静态确定。() 6.2型文法一定是3型文法。() 7.一个句型一定句子。 ( ) 8.算符优先分析法每次都是对句柄进行归约。 X ( ) 9.采用三元式实现三地址代码时,不利于对中间代码进行优化。() 10.编译过程中,语法分析器的任务是分析单词是怎样构成的。 ( ) 11.一个优先表一定存在相应的优先函数。 X ( ) 12.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。 ( ) 13.递归下降分析法是一种自下而上分析法。 ( ) 14.并不是每个文法都能改写成LL(1)文法。 ( ) 15.每个基本块只有一个入口和一个出口。 ( ) 16.一个LL(1)文法一定是无二义的。 ( ) 17.逆波兰法表示的表达试亦称前缀式。 ( ) 18.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。 ( ) 19.正规文法产生的语言都可以用上下文无关文法来描述。 ( ) 20.一个优先表一定存在相应的优先函数。 ( ) 21.3型文法一定是2型文法。 ( ) 22.如果一个文法存在某个句子对应两棵不同的语法树,则文法是二义性的。 ( ) 答案:1.× 2.× 3.× 4.√ 5.√ 6.×7.×8.× 9.√10.× 11.× 12.√ 13.× 14.√ 15.√ 16.√ 17.× 18.√19.√ 20.×21.√22.√ 二、填空题: 2.编译过程可分为(词法分析),(语法分析),(语义分析与中间代码生成),(优化)和(目标 代码生成)五个阶段。 3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是(二义性的)。 4.从功能上说,程序语言的语句大体可分为(执行性)语句和(说明性)语句两大类。 5.语法分析器的输入是(单词符号),其输出是(语法单位)。 6.扫描器的任务是从(源程序中)中识别出一个个(单词符号)。 7.符号表中的信息栏中登记了每个名字的有关的性质,如(类型、种属、所占单元大小、地址)等等。 8.一个过程相应的DISPLAY表的内容为(现行活动记录地址和所有外层最新活动记录的地址) 10.常用的两种动态存贮分配办法是(栈式)动态分配和(堆式)动态分配。 11.一个名字的属性包括( 类型)和(作用域 )。 12.常用的参数传递方式有(传地址),(传值),(传名) 13.根据优化所涉及的程序范围,可将优化分成为(局部优化),(循环优化),(全局优化)三个级别。 14.语法分析的方法大致可分为两类,一类是(自上而下)分析法,另一类是(自下而上) 分析法。 15.预测分析程序是使用一张(分析表)和一个(符号栈)进行联合控制的。 17.一张转换图只包含有限个状态,其中有一个被认为是(初)态;而且实际上至少要有一个(终)态。 19.语法分析是依据语言的(语法)规则进行。中间代码产生是依据语言的(语义)规则进行的。 21.一个文法G,若它的预测分析表M不含多重定义,则该文法是(LL(1) 文法)文法。 22.对于数据空间的存贮分配, FORTRAN采用( 静态策略, PASCAL采用( 动态)策略。

编译原理2011期末考试试卷答案

2011~ 2012 学年第 1 学期期末考试试卷答案 《编译原理》(共 4 页) (考试时间: 2011 年 12 月 25 日) 一、选择题(每题 1 分,共 10 分) 1.B 2.D 3.A 4.D 5.D 6.C 7.B 8.C 9.D 10.B 二、简答题(每题 5 分,共 20 分) 1.何谓二义性文法?试举一例说明。 答:若文法G 的一个句子对应有两棵或两棵以上不同的推导树,则称该句子是 二义性的。产生二义性句子的文法称为二义性文法,否则该文法是无二义性的。 例子:给定文法G[] : *||a|b 考察句子 ab*,它有两棵不同的推导树,如下所示: * a * b a b a 2.通过合并 LR(1) 文法中的同心状态得到的 LALR(1) 文法可能会产生哪些冲突?一定不会产生哪些冲突?为什么? 答:可能会产生归约 -归约冲突,一定不会产生移进 -归约冲突。 因为在对 LR(1) 合并同心集合时,有可能将原本没有冲突的同心集的项目集 合并后造成一些归约项目向前搜索符集合的交集不是空,产生归约-归约冲突。但是由于文法本身已经是LR(1) 文法,因此可知,在项目集中一定不存在移进 -归约冲突,也就是移进项目要求输入的终结符和任意归约项目的向前搜索符集合的交集都是空集。这样,在将同心集合并之后,移进项目要求输入的终结符和归约项目的向前搜索符集合的交集也还是空集。 3.自顶向下的预测分析方法为什么不能分析具有左递归的文法? 答:在自顶向下的语法分析技术中,要解决的问题是根据当前输入符号判断将识 别符号以及非终结符号替换成哪条规则的右部,若文法具有左递归,则在分析过程中,无法判断替换的规则,造成无穷递归求解过程。 4.设 G=(V N,V T, P,)是上下文无关文法,产生式集合P 中任意一个产生式应具有什么样的形式?若G 是正则文法呢? 答:上下文无关文法的产生式形式为: A →α,其中, A ∈ V N,α∈( V N∪V T)* 正则文法产生式形式为: N,a∈V T A→,或→ (右线性文法)其中,A,B ∈V aBA a A→Ba,或 A → a(左线性文法)其中, A,B ∈ V N, a∈V T 三、推导题(共70 分) 1.对于文法 G[S]:

编译原理期末考试题目及答案

一、填空题(每空 2分,共20分) 1编译程序首先要识别出源程序中每个 单词,然后再分析每个句子并翻译其意义。 2?编译器常用的语法分析方法 有自底向上 和自顶向下 两种。 3?通常把编译过程分为分析前端与综合后端两大阶段。词法、语法和语义分析是对源程序的 分析,中间代码生成、代码 优化与目标代码的生成则是对源程序的 综合。 4?程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即 静态存储分配 方案和动态存储分配 5?对编译程序而言,输入数据是 源程序,输出结果是目标程序。 1计算机执行用高级语言编写的程序主要有两种途径: 解释和编译。 2?扫描器是词法分析器,它接受输入的 源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符 号,供语法 分析器使用。 3?自下而上分析法采用 移进、归约、错误处理、 接受等四种操作。 4?一个LL (1)分析程序需要用到 一张分析表 和符号栈。 5. 后缀式abc-/所代表的表达式是 a/(b-c )。 3 . 文法G : S T xSx|y 所识别的语言是 _C _________ 。 A ? xyx B ? (xyx)* C ? xnyxn(n > 0) D ? x*yx* 4 ?如果文法 G 是无二义的,则它的任何句子 a_ ______ 。 A ?最左推导和最右推导对应的语法树必定相同 B ?最左推导和最右推导对应的语法树可能不同 C ?最左推导和最右推导必定相同 D ?可能存在两个不同的最左推导,但它们对应的语法树相同 5 ?构造编译程序应掌握 _____ D_。 A ?源程序 B ?目标语言 C ?编译方法 6. 四元式之间的联系是通过 __B —实现的。 A .指示器 B .临时变量 C ?符号表 7. 表达式(「A B ) A (C V D )的逆波兰表示为__B_。 A . 「AB VA CD V B . AqB V CD VA 9. 下列—C —优化方法不是针对循环优化进行的。 A.强度削弱 B .删除归纳变量 10 .编译程序使用_B_区别标识符的作用域。 A.说明标识符的过程或函数名 C .说明标识符的过程或函数的动态层次 三、判断题(对的打",错的打X,每小题 1分,共10 分) 2 . 一个有限状态自动机中,有且仅有一个唯一的终态。 二、单项选择题(每小题 2分,共20分) 1词法分析器的输出结果是 _C 。 A ?单词的种别编码 B ? C ?单词的种别编码和自身值 D ? 2. 正规式 M 1和M 2等价是指__C_。 A ? M1和M2的状态数相等 C ? M1和M2所识别的语言集相等 单词在符号表中的位置 单词自身值 B ? M1和M2的有向边条数相等 D ? M1和M2状态数和有向边条数相等 D .以上三项都是 D .程序变量 C . AB V 「C D VA D . AqB VA CD V 8. 优化可生成__D_的目标代码。 A .运行时间较短 C .运行时间短但占用内存空间大 B .占用存储空间较小 D .运行时间短且占用存储空间小 C .删除多余运算 D ?代码外提 B .说明标识符的过程或函数的静态层次 D.标识符的行号

编译原理期末考试复习题

编译原理参考题目 第一套 一、判断题 1.用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行”这种说法。( N) 2.若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄。( N) 3.一个句型的句柄一定是文法某产生式的右部。(Y ) 4.在程序中标识符的出现仅为使用性的。( N) 5.仅考虑一个基本块,不能确定一个赋值是否真是无用的。(Y ) 6.削减运算强度破坏了临时变量在一基本块内仅被定义一次的特性。(Y ) 7.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。(N ) 8.算符优先关系表不一定存在对应的优先函数。( N) 9.数组元素的地址计算与数组的存储方式有关。(N ) 10.编译程序与具体的机器有关,与具体的语言无关。(N ) 参考答案: 1、× 2、× 3、√ 4、× 5、√ 6、√ 7、× 8、× 9、×10、× 二、选择题 1.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括_____。 A.模拟执行器B.解释器 C.表格处理和出错处理D.符号执行器 2.文法G[N]= ({b} ,{N ,B} ,N ,{N→b│bB ,B→bN} ),该文法所描述的语言是 A.L(G[N])={bi│i≥0} B.L(G[N])={b2i│i≥0} C.L(G[N])={b2i+1│i≥0} D.L(G[N])={b2i+1│i≥1} 3.一个句型中的最左_____称为该句型的句柄。 A.短语B.简单短语C.素短语D.终结符号 4.设G 是一个给定的文法,S 是文法的开始符号,如果S->x( 其中x∈V*), 则称x 是文法G 的一个_____。 A.候选式B.句型C.单词D.产生式 5.文法G[E] : E→T∣E +T T→F∣T ﹡F F→a∣(E ) 该文法句型E + F ﹡(E +T) 的简单短语是下列符号串中的_____。 ①(E +T )② E +T ③F ④ F ﹡(E +T)

编译原理期末试题答案

一、单项选择题(共10小题,每小题2分,共20分) 1.语言是 A.句子的集合B.产生式的集合 C.符号串的集合D.句型的集合 2.编译程序前三个阶段完成的工作是 A.词法分析、语法分析和代码优化 B.代码生成、代码优化和词法分析 C.词法分析、语法分析、语义分析和中间代码生成 D.词法分析、语法分析和代码优化 3.一个句型中称为句柄的是该句型的最左 A.非终结符号B.短语C.句子D.直接短语 4.下推自动机识别的语言是 A.0型语言B.1型语言 C.2型语言D.3型语言 5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即 A.字符B.单词C.句子D.句型 6.对应Chomsky四种文法的四种语言之间的关系是 A.L0?L1?L2?L3 B.L3?L2?L1?L0 C.L3=L2?L1?L0D.L0?L1?L2=L3 7.词法分析的任务是 A.识别单词B.分析句子的含义 C.识别句子D.生成目标代码 8.常用的中间代码形式不含 A.三元式B.四元式C.逆波兰式D.语法树 9.代码优化的目的是 A.节省时间B.节省空间 C.节省时间和空间D.把编译程序进行等价交换 10.代码生成阶段的主要任务是 A.把高级语言翻译成汇编语言 B.把高级语言翻译成机器语言 C.把中间代码变换成依赖具体机器的目标代码 D.把汇编语言翻译成机器语言 二、填空题(本大题共5小题,每小题2分,共10分) 1.编译程序首先要识别出源程序中每个(单词),然后再分析每个(句子)并翻译其意义。2.编译器常用的语法分析方法有(自底向上)和(自顶向下)两种。 3.通常把编译过程分为分析前端与综合后端两大阶段。词法、语法和语义分析是对源程序的(分析),中间代码生成、代码优化与目标代码的生成则是对源程序的(综合)。 4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即(静态存储分配)方案和(动态存储分配)方案。 5.对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。 三、名词解释题(共5小题,每小题4分,共20分) 1.词法分析

相关文档
相关文档 最新文档