《编译原理》练习题库参考答案Word下载.docx

上传人:b****5 文档编号:21480646 上传时间:2023-01-30 格式:DOCX 页数:24 大小:58.40KB
下载 相关 举报
《编译原理》练习题库参考答案Word下载.docx_第1页
第1页 / 共24页
《编译原理》练习题库参考答案Word下载.docx_第2页
第2页 / 共24页
《编译原理》练习题库参考答案Word下载.docx_第3页
第3页 / 共24页
《编译原理》练习题库参考答案Word下载.docx_第4页
第4页 / 共24页
《编译原理》练习题库参考答案Word下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

《编译原理》练习题库参考答案Word下载.docx

《《编译原理》练习题库参考答案Word下载.docx》由会员分享,可在线阅读,更多相关《《编译原理》练习题库参考答案Word下载.docx(24页珍藏版)》请在冰豆网上搜索。

《编译原理》练习题库参考答案Word下载.docx

 

 

则称G(z)是______文法,这类文法所产生的句子有______个。

40.乔姆斯基把文法分成____类型.

41.四个文法类的定义是逐渐增加限制的,因此每一种正规文法都是_______.

42.最右推导常被称为________。

43.由规范推导所得的句型称为______。

44.文法的二义性和语言的二义性是两个_________的概念。

45.对于上下文无关文法,_______是句型推导过程的几何表示。

46.直接短语也称_______.

47.每棵语法树的叶子组成一个______.

48.每棵子树的叶子组成一个______.

49.每棵简单子树的叶子组成一个_______.

50.最左边简单子树的叶子组成_______.

51.一个句型的最左直接短语称为该句型的_______。

52.关于句型或句子的直接推导"

=>

"

和推导"

+"

,实际上均可视为符号串之间关系,而且推导"

为直接推导"

的_________。

53.________是语言文法的等价表示,可用它来代替BNF规则集合。

54.某条规则U→u中的左部符号U(U不是识别符号),不在所属文法的任何其他规则右部出现,那么这条规则在推导中不起作用,即所有句子的推导始终不会用到此规则,显然这种规则是多余的。

也称这种非终结符为_________.

55.从文法的某个非终结符号U推不出终结符号串,显然,所有含有U的规则是多余的。

也称这种非终结符为________。

56.若L是上下文有关语言、上下文无关语言或正规语言,则L∪{ε}和L-{ε}分别是上下文有关语言、_____和正规语言。

57.设有文法G,对于其中某一非终结符号U可能作出一些不同推导U=>

+Sx,其中S叫头符号,由于推导不同,由U产生的头符号S也可能不同,这些头符号S构成的集合,称为U的推导的__________.

58.一个上下文无关文法G包括四个组成部分依次是:

_____,______,_______,_______.11

59.文法所描述的语言是_______的集合。

60.词法分析器工作的第一步是输入源程序文本。

输入串一般是放在一个缓冲区中,这个缓冲区称________。

二、选择

1.编译程序是一种常用的_________软件。

A.应用 

B.系统C.工具D.测试

2.在使用高级语言编程时,首先可通过编译程序发现源程序的全部______错误和部分______错误。

A.语法B.语义 

C.语用 

D.运行

3.编译程序生成的目标程序_____是机器语言的程序。

A.一定 

B.不一定C.某种情况下一定D.某种情况下不一定

4.编译程序生成的目标程序_______是可执行的程序。

A.一定 

5.一个语言的文法是_____.

A.惟一的 

B.不惟一的 

C.个数有限的D.无限的

6.巴科斯-诺尔范式(即BNF)是一种广泛采用的_____的工具。

A.描述规则 

B.描述语言 

C.描述文法 

D.描述句子

7.设r=(a|b|c)(x|y|z)则L(r)中元素为个()

A.9B.6C.18D.27

8、正则集合L={an|n≧0}相应的正则表达式是()

A.a*B.a+C.aa*D.aa+

9.编译过程中扫描器的任务包括______。

①组织源程序的输入

②按词法规则分割出单词,识别出其属性,并转换成属性字的形式输出

⑧删除注解

④删除空格及无用字符

⑤行计数、列计数

⑥发现并定位词法错误

⑦建立符号表

A.②③④⑦ 

B.②③④⑥⑦ 

C.①②③④⑥⑦ 

D.①②③④⑤⑥⑦

10、编译过程中,语法分析器的任务是______。

a.分析单词是怎样构成的

b.分析单词串是如何构成语句和说明的

c.分析语句和说明是如何构成程序的

d.分析程序的结构

A.bc 

Bd 

C.bcd 

D.abcd

11、语法分析的常用方法是________。

a.自顶向下 

b.自底向上 

c.自左向右 

d.自右向左

A.abcd 

B.ab 

C.cd 

D.abc

12、编译程序中的语法分析器接受以________为单位的输入,并产生有关信息供以后各阶段使用。

A.表达式 

B.产生式 

C.单词 

D.语句

13、LL

(1)文法的条件是_______。

A.对形如U->

Xl|X2|…|Xn的规则,要求FIRST(Xi)∩FIRST(Xj)=Φ,(i≠j)

B.对形如U->

Xl|X2|…|Xn的规则,若Xi=>

*ε,则要求FIRST(Xj)∩FOLLOW(U) 

C.A和B

D.都不是

14、一个右线性文法G一定是()

A.LL

(1)文法C.SLR

(1)文法

B.LR

(1)文法D.上述三者都不是

15、算符文法是指______的文法。

26

①没有形如U->

…VW…的规则(U,V,W∈VN)

②终结符号集VT中任意两个符号对之间至多有一种优先关系成立

⑧没有相同的规则右部

④没有形如U->

ε的规则

A.① 

B.①② 

C.①②③ 

D.①②③④

16、算符优先文法是指______的文法。

A.①② 

B.①②③ 

C.①②③④ 

D.①②④

17、下列文法G[S]的句型aR/aSb/aTb/,b 

的最左素短语

为______。

S->

aTb|,

T->

R

R->

R/S|S

A.aTb 

B.aSb 

C.S 

D.R/ 

18、算符优先分析法每次都是对______进行归约,简单优先分析法每次都是对句柄进行归约。

A.最左短语B.简单短语C.最左素短浯D.素短语

19、xab+cde-*f/:

=是赋值语句()相应的后缀式

A.x:

=a+b+c*d-e/fB.x:

=a+(b+c)*d-e/f

C.x:

+a+b+c*(d-e)/fD.x:

=a+b+c+(c*d)-e/f

20、LR(K)方法是______。

A.从左到右分析,每次走K步的一种编译方法

B.从左到右分析,共经过K步的一种编译方法

C.从左到右分析,每次向前预测K步的一种编译方法

D.从左到右分析,每次向貌似句柄的符号串后看K个输入符号的一种编译方法

21、下面三个文法中,为SLR

(1)文法的是______。

10

G1:

P->

PaP|b

G2:

bPb|cPc|b|c

G3:

bPb|bPc|d

A.仅Gl 

B.仅G2 

C.仅G3 

D.G2和G3 

22、有下列文法:

11

Pa|Pb|c

Pd|Se|f

该文法是______。

A.LL

(1)文法 

B.SLR

(1)文法

C.a和b 

D.都不是

23.代码优化的主要目标是()12

①如何提高目标程序的运行速度

②如何减少目标程序运行所需的空间

③如何协调①和②

④如何使生成的目标代码尽可能短

A①② 

B①②③ 

C①②④ 

①②③④

24、设文法G(S为其开始符号)产生式如下:

S→aSb|ab|ε则G是一个()

A.LR

(1)文法B.SLR

(1)文法

C.三型文法D.二型文法

25在编译程序采用的优化方法中,_____是在循环语句范围内进行的。

12

①合并已知常量 

②删除多余运算,

③删除归纳变量 

④强度削弱

⑤代码外提

A①④ 

B①⑤ 

C①④⑤ 

D③④⑤

26合并表达式中常量运算的目的是_____。

①合并常量,使表达式中的常量尽可能少 

②合并常量,使表达式尽可能简短

③将可在编译时刻计算的常量运算在编译时刻计算出来,然后用所计算出来的值替换表达式中出现的所有这种常量运算,使得生成的代码指令尽可能少

A① 

B② 

C③ 

①②③

27 

下面的程序段可以进行哪些优化_____。

i:

=1

j:

=l0

read 

k

L:

x:

=x*i

y:

=j*i

z:

=x*y

writej

=i+1

ifi<

100 

goto 

L

halt

②删除多余运算

可选项有:

A.①④ 

B①⑤ 

C,①④⑤ 

D.③④⑤ 

28.属于低级语言的是( )

AFortranB.PascalC.LispDMasm

29.设oct是字母表{0,1,…,7}中的任何一个元素,表示C语言的八进制无符号整规表达式是()。

A.(oct)8B.(oct)*C.(oct)+D.(oct)#

30.采用()实现三地址代码时,不利于对中间代码进行优化。

A.四元式B.间接三元式C.三元式D.有向无循环图

31.一个正规语言只能对应(  )?

A一个正规文法;

B一个最小有限状态自动机;

C.一个下推自动机

D.一个确定的有限自动机

32.文法G[A]:

A→εA→aBB→AbB→a是(  ):

A正规文法B二型文法

C.上下无关文法D.不确定

33.下面说法正确的是(  ):

A一个SLR

(1)文法一定也是LALR

(1)文法

B一个LR

(1)文法一定也是LALR

(1)文法

34.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL

(1)文法的(  ):

A.必要条件

B.充分必要条件

C.充分条件

D.无法确定

35.PL/0语言的目标程序解释执行时用到的数据对象有(  ):

A目标代码CODE

B符号表TABLE

C关键字表WORD

D数据栈S

36.PL/0语言编译时产生或使用的数据对象不包括(  ):

C数据栈S

D关键字表WORD

37、编译程序是一种常用的_________软件。

A.应用B.系统C支撑D.自动化

38、在使用高级语言编程时,首先可通过编译程序发现源程序的全部______错误和部分语义错误。

A.语法B语义C.语用D.运行

39.一个LR

(1)文法合并同心集后若不是LALR

(1)文法:

A则可能存在移进/归约冲突

B则可能存在归约/归约冲突

C则可能存在移进/归约冲突和归约/归约冲突

D不存在冲突

40、运算符与运算对象类型不符"

属于______。

A.语法错误B.语义错误C.语用错误D.规则

三、简答题

1.“含有优化部分的编译程序的执行效率高”,这种说法正确吗?

2.有人认为编译程序的五个组成部分却一不可,这种看法正确吗?

3.解释程序定义哪些寄存器?

4.PL/0编译程序对语法错误的处理采用哪两种办法?

5.解释说明指令LIT?

LOD?

STO?

CAL?

INT?

JMP?

JPC?

OPR?

5

6.已知文法G(S)

  S→a|∧|(T)

  T→T,S|S

  写出句子((a,a),a)的规范归约过程及每一步的句柄。

7.何谓优化?

按所涉及的程序范围可分为哪几级优化?

8.目标代码有哪几种形式?

生成目标代码时通常应考虑哪几个问题?

9.写出表达式(a+b*c)/(a+b)-d的逆波兰表示及三元式序列。

10.写一个文法,使其语言是奇数集,且每个奇数不以0开头。

11.编译程序的结构是什么?

12.关系有哪些基本性质?

13.解释字母表,符号,符号串,符号串的长度,符号串联结?

14.自下而上分析算法的基本思想是什么?

15.设有文法G:

s:

:

=Qc|c

Q:

=Rb|b

R:

=Sa|a

试求HARD(S),HARD(Q),HARD(R).

16.用扩充的BNF范式表示下述文法以消去ε规则:

S:

=aABb|ab

A:

=Aab|ε

B:

=Aa|a

17.考虑下面程序

  …………

  Vara:

integer;

  ProcedureS(X);

   VarX:

   Begin

    a:

=a+1;

    X:

=a+X

   End;

  Begin

=5;

    S(a);

    Print(a)

  End.

  试问:

若参数传递方式分别采取传名和传值时,程序执行后输出a的值是什么?

18.设有文法G[I]:

8

I->

I1/I0/Ia/Ic/a/b/c

判断下面符号串中哪些是该文法的句子.

(1)ab0

(2)a0c01

(3)aaa

(4)bc10

(5)aabc

(6)bbca

19.为了正确地对源程序进行编译,不允许文法有二义性,那么怎样才能排除文法的二义性呢?

9

20.什么是简单子树?

21.什么是子树?

22.什么是句型的分析?

23.自下而上分析算法的基本思想是什么?

24.设有文法G:

四、综合题

1.While a>0∨b<0 do

=X+1;

    ifa>0thena:

=a-1

        elseb:

=b+1

  End;

  翻译成四元式序列。

2.设布尔表达式的文法为

  E→E

(1)∨E

(2)

  E→E

(1)∧E

(2)

  E→i

  假定它们将用于条件控制语句中,请

  

(1)改写文法,使之适合进行语法制导翻译和实现回填;

  

(2)写出改写后的短个产生式的语义动作。

3.设文法G(S):

  S→(L)|aS|a

  L→L,S|S

  

(1)消除左递归和回溯;

  

(2)计算每个非终结符的FIRST和FOLLOW;

4. 

对下列文法G:

26

S'

->

#S#

D(R)

R;

P|p

S|i

D->

i

计算文法中每个非终结符的FIRSTVT集和LASTVT集。

5.将下列赋值语句译成三地址代码。

A[i,j]:

=B[i,j]+C[A[k,l]]+D[i+j] 

6、设布尔表达式的文法为

  E→E

(1)∨E

(2)

  E→E

(1)∧E

(2)

  E→i

  假定它们将用于条件控制语句中,请

  

(1)改写文法,使之适合进行语法制导翻译和实现回填;

  

(2)写出改写后的短个产生式的语义动作。

7、(8分)给定PASCAL程序语句

whilea>

bdoifa>

0thena:

=a-1elsea:

=a+1;

1.将该语句翻译成逆波兰式;

2.给出编译程序扫描到then处及分号处时所得的四元式序列。

8.如何计算FIRST集?

更多课程资料请到大学课程网www.0206.cc学习

《编译原理》练习测试题库参考答案

1.机器语言程序或汇编程序

2.结构

3.编译程序

4.源程序,目标程序。

5.终结符

6.编译解释执行系统

7.一趟扫描方法

8.直观、易读

9.终结符和非终结符串

10.无关

11.PASCAL语言

12.18

13.解释执行程序

14.无穷的句子集

15.语法分析

16.自顶向下的递归子程序法

17.说明部分的处理,程序体部分的处理

18.语法分析,语法分析

19局部量

20滤空格,识别标识符,输出源程序

21程序结束符

22.语法,语用

23.集合

24.空集

25.相等的

26.并集

27.交集

28.全集

29.幂集

30.序偶

31.笛卡尔乘积

32.自反的

33.对称的

34.传递的

35.{(1,9),(3,7),(2,5)}

36.有关,不同于,不同于

37.句型 

38.句子

39.

(1)递归 

(2)无数

40.四种

41.上下文无关的

42.规范推导

43.规范句型

44.不同

45.语法树

46.简单短语

47.句型

48.短语

49.简单短语

50.句柄

51.句柄

52.传递闭包

53.语法图

54.不可达到的

55.不可终止的

56.上下文无关语言

57.头符号集合

58.终结符号,非终结符号,开始符号,产生式

59.由文法的识别符推出的所有终结符号串

60.输入缓冲区

1.B2.A3.B4.B5.B6.B7.B8.A9.D10.C

11.B12.C13.C14.A15.A16.D17.B18.D19.A20.D

21.C22.B23.B24.D25.D26.D27.C28.D29.D30.C

31.B32.B33.A34.A35.A36.C3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1