《编译原理》考试试题及答案_第1页
《编译原理》考试试题及答案_第2页
《编译原理》考试试题及答案_第3页
《编译原理》考试试题及答案_第4页
《编译原理》考试试题及答案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《编译原理》考试试题及答案(附录)

一、判断题:

1.一个上下文无关文法的开始符,可以是终结符或非终结符。(X)

2.一个句型的直接短语是唯一的。(X)

3.已经证明文法的二义性是可判定的。(X)

4.每个基本块可用一个DAG表示。(V)

5.每个过程的活动记录的体积在编译时可静态确定。(V)

6.2型文法一定是3型文法。(x)

7一个句型一定句子。(x)

8.算符优先分析法每次都是对句柄进行归约。(应是最左素短语)(X)

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

10.编译过程中,语法分析器的任务是分析单词是怎样构成的。(x)

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.一个过程相应的DISPLAY表的内容为()<.

9.一个句型的最左直接短语称为句型的()。

1Q.常用的两种动态存贮分配办法是()动态分配和()动态分配。

1L一个名字的属性包括()和()。

12.常用的参数传递方式有(),()和()。

13.根据优化所涉及的程序范围,可将优化分成为(),()和()三个级别。

14.语法分析的方法大致可分为两类,一类是()分析法,另一类是()分析法。

15.预测分析程序是使用一张()和一个()进行联合控制的。

16.常用的参数传递方式有(),()和()。

17.一张转换图只包含有限个状态,其中有一个被认为是()态;而且实际上至少要有一个()态。

18.根据优化所涉及的程序范围,可将优化分成为(),()和()三个级别。

19.语法分析是依据语言的(;规则进行。中间代码产生是依据语言的()规则进行的。

20.一个句型的最左直接短语称为句型的(

21.一个文法G,若它的预测分析表M不含多重定义,则该文法是()文法。

22.对于数据空间的存贮分配,FORTRAN采用()策略,PASCAL采用()策略。

23.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是()。

24.最右推导亦称为(),由此得到的句型称为()句型。

25.语法分析的方法大致可分为两类,一类是()分析法,另一类是()分析法。

26.对于文法G,仅含终结符号的句型称为()o

27.所谓自上而下分析法是指(

28.语法分析器的输入是(),其输出是()<>

29.局限于基本块范围的优化称()o

30.预测分析程序是使用一张()和一个()进行联合控制的。

31.2型文法又称为()文法;3型文法又称为()文法。

32.每条指令的执行代价定义为(

33.算符优先分析法每次都是对()进行归约。

三、名词解释题:

1.局部优化

2.二义性文法

3.DISPLAY表

4.词法分析器

5.最左推导

6.语法

7.文法

8.基本块

9.语法制导翻译

10.短语

11.待用信息

12.规范句型

13.扫描器

14.超前搜索

15.句柄

16.语法制导翻译

17.规范句型

18.素短语

19.语法

20.待用信息

21.语义

四、简答题:

1.写一个文法G,使其语言为不以。开头的偶数集。

2.已知文法G(S)及相应翻译方案

S->aAb{print"1"}

S-*a{print"2"}

A-AS{print“3”}

A-*c{print"4"}

输入acab,输出是什么?

3.已知文法G(S)

S-*bAa

A-*(B|a

B-*Aa)

写出句子b(aa)b的规范归约过程。

4.考虑下面的程序:

procedurep(x,y,z);

begin

y:=x+y;

2:=Z*Z;

end

begin

A:=2;

B:=A*2;

P(A,A,B);

PrintA,B

end.

试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出A,B的值是什么?

5.文法G(S)

S-*dAB

A—aA|a

B->Bb|e

描述的语言是什么?

6.证明文法G(S)

S-SaS|E

是二义性的。

7.已知文法法S)

S-BA

A^BS|d

B-*a?.|bS|c

的预测分析表如下

abcd

SS-*BAS-BAS-BA

AAfBSAfBSA-BSA-d

BB-*aAB-bSB-*c

给出句子adccd的分析过程。

8.写一个文法G,使其语言为L(G)={abc"b"|1>=0,m>=l,n>=2}

9.已知文法G(S):

S-*a|(T)

T-T,S|S

的优先关系表如下:

关系a()

a.>.>

(<.一.

).>.>

(z.>.>

请计算出该优先关系表所对应的优先函数表。

10.何谓优化?按所涉及的程序范围可分为哪儿级优化?

11.目标代码有哪几种形式?生成目标代码时通常应考虑哪几个问题?

12.一字母表2={a,b},试写出S上所有以a为首的字组成的正规集相对应的正规式。

13.基本的优化方法有哪几种?

14.写一个文法G,使其语言为L(G)={abnen|n^O}

15.考虑下面的程序:

procedurep(x,y,z);

begin

y:=y+z;

z:=y*z+x

end;

begin

a:=2;

b:=3;

P(a+b,b,a);

printa

end.

试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出a的值是什么?

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

17.证明文法G(A)

2AA|(A)|e

是二义性的。

18.令2={a,b},则正规式/bEa表示的正规集是什么?

19.何谓DISPLAY表?其作用是什么?

20.考虑下面的程序:

•••

procedurep(x,y,z);

begin

y:=y+2;

z:=z+x;

end

begin

a:=5;

b:=2;

p(a+b,a-b,a);

printa

end.

试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出a的值是什么?

21.写一个文法G,使其语言为L(G)={anbQ|n>0为奇数,m>0为偶数}

22.写出表达式a:=(b+c)*e+(b+c)/f的逆波兰式和三元序列。

23.一个文法G别是LL(1)文法的充要条件是什么?

24.已知文法G[S]

S,S*aF|aF|*aF

Ff+aF|+a

消除文法左递归和提公共左因子。

25.符号表的作用是什么?符号表查找和整理技术有哪几种?

五、计算题:

1.设文法G(S):

S一|a|⑴

T-*T,S|S

(1»消除左递归;

⑵构造相应的FIRST和FOLLOW集合;

⑶构造预测分析表

2.语句ifEthenS

(1)改写文法,使之适合语法制导翻译;

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

3.设文法G(S):

STT)|a

T-T+S|S

(1•计算FIRSTVT和LASTVT;

(2〕构造优先关系表。

4.设某语言的for语句的形式为

fori:=E(I>toE⑵doS

其语义解释为

i:=E(,)

LIMIT:=E(2)

again:ifi<=LIMITthen

Begin

S;

i:=i+1

gotoagain

End;

(1)写出适合语法制导翻译的产生式:

(2)写出每个产生式对应的语义动作。

5.把语句

whilea<10do

ifc>0thena:=a+l

elsea:=a*3-l;

翻译成四元式序列。

6.设有基本块

D:=A-C

E:=A*C

F:=D*E

S:=2

T:=A-C

Q:=A*C

G:=2*S

J:=T*Q

K:=G*5

L:=K+J

M:=L

假设基本块出口时只有M还被弓用,请写出优化后的四元序列。

7.已知文法法S)

S-ar|⑴

T-T,S|S

(1)给出句子(a,(a,a))的最左推导;

(2)给出句型((T,S),a)的短语,直接短语,句柄。

8.对于C语言doSwhileE语句

(1)改写文法,使之适合语法制导翻译;

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

9.已知文法G(S)

S-*aAcRp

A-*Ab|b

B-*d

(1)给出句子abbcde的最左推导及画出语法树;

(2)给出句型aAbcde的短语、素短语。

10.设文法G(S):

S-(T)|aS|a

T-T,S|S

⑴消除左递归和提公共左因子;

⑵构造相应的FIRST和FOLLOW集合;

⑶构造预测分析表。

11.把语句

ifX>0VY<0

thenwhileX>0doX:=A*3

elseY:=B+3;

翻译成四元式序列。

12.己知文法G(5)

EfE+T|T

T-*T*F|F

F-(E)|i

(1)给出句型(i+i)*i+i的最左推导及画出语法树;

(2)给出句型(E+T)*i+F的短语,素短语和最左素短语。

13.设文法G(S):

S-*T|SvT

T-U|TAU

U-i|-U

(1)计算FIRSTVT和LASTVT;

(2)构造优先关系表。

参考答案

一、是非题:

1.X2.X3.X4.V5.V6.X7.X8.X9.V10.X11.X

12.J13.X14.V15.V16.J17.X18.V19.J20.X21.V22.J

二、填空题:

1.(最右推导)

2.(词法分析),(语法分析),(中间代码生成),(代码优化),(目标代码生成)

3.(二义性的)

4.(执行性),(说明性)

5.(单词符号),(语法单位)。

6.(源程序),(单词符号)

,.(类型、种属、所占单元大小、地址)

8.(现行活动记录地址和所有外层最新活动记录的地址)

9.(句柄)

10.(栈式),(堆式)

11.(类型),(作用域)

12.(传地址),(传值),(传名)

13.(局部优化),(循环优化),(全局优化)

".(自上而下),(自下而上)

15.(分析表),(符号栈)

16.(传地址),(传值),(传名)

17.(初),(终)

18.(局部优化),(循环优化),(全局优化)

19.(语法),(语义)

20.(句柄)

21.(LL(1)文法)

22.(静态),(动态)

23.(二义性文法)

24.(规范推导),(规范)

25.(自上而下),(自下而上)

26.(句子)

27.(从开始符号出发,向下推导,推出句子)

28.(单词符号),(语法单位)

2g.(局部优化)

30.(分析表),(符号栈)

31.(上下文无关文法),(正规)

32.(指令访问主存次数加1)

33.(最左素短语)

三、名词解释题:

1.局部优化-----局限于基本块范围的优化称。

2.二义性文法----如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义性文法。

3.DISPLAY表一一过程的嵌套层次显示表,记录该过程的各外层过程的最新活动记录的起始地址。

4.词法分析器——执行词法分析的程序。

5.最左推导---任何一步a=>3都是对a中的最右非终结符替换。

6.语法------组规则,用它可形成和产生一组合式的程序。

7.文法----描述语言的语法结构的形式规则。

8.基本块----指程序中一顺序执行的语句序列,其中只有一个入口和一个出口,入口就是其中的第一个

语句,出口就是其中的最后一个语句。

第1页共7页

9.语法制导翻译----在语法分析过程中,根据每个产生式所对应的语义子程序进行翻译的办法叫做语法

制导翻译。*

10.短语---令G是一个文法,S划文法的开始符号,假定aB6是文法G的一个句型,如果有S=>

aA6且A=±5B,则称B是句型aB6相对非终结符A的短语。

11.待用信息----如果在一个基本块中,四元式i对A定值,四元式j要引用A值,而从i到j之间没

有A的其它定值,则称j是四元式i的变量A的待用信息。

12.规范句型----由规范推导所得到的句型。

13.拦描器---执行词法分析的程序。

14.超前搜索---在词法分析过程中,有时为了确定词性,需超前扫描若干个字符。

15.句柄-----个句型的最左直接短语。

16.语法制导翻译---在语法分析过程中,根据每个产生式所对应的语义程序进行翻译的方法叫做语

法制导翻译。

17.规范句型----由规范推导所得到的句型。

18.素短语---素短语是指这样一个短语,至少含有一个终结符,并且,除它自身外不再含任何更小的

素短语。

19.语法---是组规则,用它可形成和产生一个合式的程序。_

20.待用信息----如果在一个基本块中,四元式i对A定值,的元式j要引用A值,而从i到j之间没

有A的其它定值,则称j是四元式i的变量A的待用信息。

21.语义----定义程序的意义的一组规则。

四、简答题:

1.所求文法是G[S]:

SfAB|BAO

A-AD|C

B-2|4|6|8

C->1|3|5|7|9|B

D-*0|C

2.输出是4231

3.句子b(aa)b的规范归约过程:

步骤符号栈输入串动作

0#b(aa)b#预备

1#b(aa)b#移进

2#b(aa)btt移进

3#b(aa)b#移进

4#b(Aa)b#归约

5#b(Ma)b#移进

6#b(Ma)b#移进

7#b(Bb#归约

8#bAb#归约

9#bAb移进

10#Sn接受

4.传地址A=6,B=16

传值A=2,B=4

5.L(G)={danbB|n>0,m20}

6.证明:

因为文法G[S]存在句子aa有两个不同的最左推导,所以文法G[S]是是二义性的。

S=>SaS=>SaSaS=>aSaS=>aaS=>aa

第2页共7页

S=>SaS=>aS=>aSaS=>aaS=>aa

7.句子adccd的分析过程:

步骤符号栈输入串产生式

0#Sadccd#

1#ABadccd#S-BA

2#AAaadccd#B-*aA

3#AAdeed#

4#Addeed#A-*d

5#Accd#

6#SBccd#A-BS

7#Scccd#B-*c

8#Scd#

9#ABcd#B-*c

10#Acd#

11#Ad#

12#dcl=A-*d

13

8.所求文法是G[S]:

S-AB

A--aAc|D

D-bD|b

B-*aBb|aabb

11.目标代码通常采用三种形式:机器语言,汇编语言,待装配机器语言模块。

应着重考虑的问题:

(1)如何使生成的目标代码较独;

(2)如何充分利用寄存器,以减少访问内存次数;

(3)如何充分利用指令系统的痔点。

12.正规式a(a|b)*o

13.删除多余运算,代码外提,强度削弱,变换循环控制条件,合并已知量,复写传播和删除无用赋值。

14.文法G[S]:

S-aB|a

B—be|bBc

15.传值a=2

传地址a=15

16.逆波兰式:abcd-*e/+

三元序列:oparglarg2

第3页共7页

(1)—Cd

⑵*b(1)

(3)/⑵<?

(4)+a(3)

17.证明:

因为文法G[S]存在句子()有两个不同的最左推导,所以文法G[S]是是二义性的。

A=>AA=>(A)A=>()A=>()

A=>AA=>A=>(A)=>()

18.(a*b|b*a)={a,b,ab,ba,aab,bba..}

19.Display表:嵌套层次显示表

由于过程嵌套允许内层过程引用外层过程定义的数据,因此,当一个过程运行时必须跟踪它的所有外

层过程的最新活动记录起始地址,display表就是用于登记每个外层过程的最新活动记录起始地址。

20.传地址a:12

传值a=5

21.所求文法是G[S]:

SfAC

A-*aaAbbIab

C-*ccC|cc

22.逆波兰式abc+e*bc+f/+:

三元序列oparglarg2

(1)+bc

(2)*(1)e

(3)+bc

(4)/(3)f

(5)+(2)(4)

(6):=a(5)

23.一个文法G别是LL(1)文法的充要条件是:

(1)FIRSTS)nFIRST(B)=中

(2)如果B=*>£,FIRST(a)nFOLLOW(A)=①

24.消除左递归

S-aFS'|*aFS,

S'->*aFS'|£

F-*+aF|+a

提公共左因子,文法1(S)

S-aFS'|*aFS,

S'f*aFS'|£

1+aF'

F'-F|£

25.作用:登记源程序中出现的各种名字及其信息,以及了解各阶段的进展状况。

主要技术:线性表,对折查找,杂奏技术。

五、计算题:

1.

(1)消除左递,文法变为G'[S]:

S1|a|(T)'

T-ST'|S

V|£

此文法无左公共左因子。

(2)构造相应的FIRST和FOLLOW集合:

FIRST(S)={a,\(},FOLLOW(S)={#,,,)}

第4页共7页

FIRST(T);{a,\(},FOLLOW(T)={}}

FIRST1')={,,e},FOLLOW(F)={)}

(3)构造预测分析表:

aA()#

sS—>aS—AS->(T)'

TT—ST'T->ST,T—ST'

T'T'fTJ,sr

2.(1)

ifEthen

S-CS⑴

(2)

"ifEthen{BACK(E.TC,NXQ);C.chain:=E.FC}

S-CS⑴{S.chain:=MERG(C.Chain,S⑴.Chain)}

3.(1)FIRSTVT(S)={a,(}

FIRSTVT(T)={+,()

LASTVT(S)={a,))

LASTVT(T)={+,a,)}

(2)

a+()

a.>.>

+<..><..>

(<.<.<.=e

).>.>>.

4.(1)F—fori:=E(l>toE⑵do

STS⑴

(2)Fffori:=E<0toE"do

{GEN(:=,E(n.place,entry(i));

F.place:=entry(i);

LIMIT:=Newtemp;

GEN(:=,E<2).place,LIMIT);

Q:=NXQ;

F.QUAD:二q;

GENgentry(i),LIMIT,q+2)

F.chain:=NXQ;

GEN(j,0)}

STS⑴

{BACKPATCH(S(,).chain,NXQ);

GEN(+,F.place,1,F.place):

GEN(j,F.QUAD);

S.chain:=F.chain

5.(1)(j<»a,'10',(3))

⑵(j,(12))

(3)(j>,c,'O',(5))

(4)(j,(8))

(5)(+,a,T,Tl))

(6)(:=,Tl,a)

⑺(j,(D)

(8)(*,a,'13',T2)

第5页共7页

(9)(-,T2,T,T3)

(10)(:=,T3,a)

(11)(j,(D)

6.优化后的四元序列

D:=A-C

E:=A*C

F:=D*E

M:=F+20

7.最左推导

S=(T)=>(T,S)=>(S,S)=>(a,S)=>(a,(T))=>(a,(T,S))=>(a,(S,S))=>(a,(a,S))=>(a,(a,a))

短语

((T,S),a)

(T,S),a

(T,S)

T,S

a

直接短语

T,S

a

句柄

T,S

8.(1)

S-d。M]StwhileM2E

M-e

(2)

M-*e{M.quad=nestquad;}

S-*doMiSiwhileM2E{backpatchCsj.nextlist,M?.quad)

backpatch(E.truelist,M).quad);

S.nextlist=E.falelist;

}

9.(1)S=>aAcBe=>AAbcBe=>abbcBe=>abbcde

:2)短语:aAbcde,Ab,d

素短语:Ab,d

10.(1)Sf(L)|aS,

S,-S|£

LfSL'

I?f,SI/|£

(2)FIRST(S)={a,(}FIRST(S,)={a,(,e)

FIRST(L)=(a,()FIRST(L")=(,,e)

FOLLOW(S)={,»),#}FOLLOW(S,)={,,),#}

FOLLOW(L)={)}FOLLOW(L,)={)}

()a#

sSf(L)S-aS'

s*S'-SS'-£S'-SS'f£S'-£

LLfSL'L-SUL」,SL,

L,L'fe

第6页共7页

11.(1)(j>,X,0,(5))

z

f2

\(j,,,(3))

/\

f3l

xz(j<.Y,0,(5))

zK

(4}

\z(j,(ID)

/\

(5J

XZ(j>0,X,0,(7))

y6\

f!

\/(j,(7))

/7\

(—

X/(*,A,3,T.)

/8X

(I

X/(:=,T.,N)

z9\

(!

\0/(j,(5))

1\

117(j,(13))

1

1

2(十,B,3,T2)

1\

!

1/

(:=,T2,Y)

12.(1)E=>E+T=>T+T=>T*F+T=>F*F+T=>(E)*F+T=>(E+T)*F+T=>(T+T)*F+T

=>(F+T)*F+T=>(i+T)*F+T=>(i+F)*F+T=>(i+i)*F+T=>(i+i)*i+T

=>(i+i)*i+F=>(i+i)*i+i

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

素短语i,E+T

最左素短语E+T

13.(1)FIRSTVT(S)-{V,A,i,一}

FIRSTVT(T)={A,i,-)

FIRSTVT(U)=(i,-}

LASTVT(S)={V,A,i,-)

LASTVT(T)={A,i,-}

LASTVT(U)={i,-}

(2)

iVA-

s.>.>

V<..><.<.

A<..>.><.

一<..>.><.

一、单项选择题

1.将编译程序分成若干个“遍”是为了(B)

A.提高程序的执行效率

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

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

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

2.不可能是目标代码的是(D)

A.汇编指令代码B.可重定位指令代码

C.绝对指令代码D.中间代码

3.词法分析器的输入是(B)

第7页共7页

A.单词符号串B.源程序

C.语法单位D.目标程序

4.中间代码生成时所遵循的是(C)

A.语法规则B.词法规则

C.语义规则D.等价变换规则

5.编译程序是对(D)

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

C.机器语言的执行D.高级语言的翻译

6.词法分析应遵循(C)

A.语义规则B.语法规则

C.构词规则D.等价变换规则

7.词法分析器的输出结果是(C)

A.单词的种别编码B.单词在符号表中的位置

C.单词的种别编码和属性值D.单词属性值

8.正规式Ml和M2等价是指(C)

A.Ml和M2的状态数相等B.Ml和M2的有向弧条数相等

C.Ml和M2所识别的语言集相等D.Ml和M2状态数和有向弧条数相等

9.词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此,(B)

A.词法分析器应作为独立的一遍

B.词法分析器作为子程序较好

C.词法分析器分解为多个过程,由语法分析器选择使用.

D.词法分析器并不作为一个独立的阶段

10.如果L(M1)=L(M2),则Ml与M2[A)

A.等价B.都是二义的

C.都是无二义的D.它们的状态数相等

11.文法G:SfxSxly所识别的语言是(C)

A.xyxB.(xyx)*c.xnyxn(n20)d.x*yx*

12.文法G描述的语言L(G)是指(A)

A.L(G)=\a\S=>a,aG>B.L(G)=«a|S=>a,a£(吟uV”)“»

C.L(G)=(a|S=>a,a£4]D.L(G)=-a\S=>a,ae.(VruV^)"

13.有限状态自动机能识别(C)

A.上下文无关文法B.上下文有关文法

C.正规文法D.短语文法

14.如果文法G是无二义的,则它的任何句子(A)

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

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

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

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

15.由文法的开始符经0步或多步推导产生的文法符号序列是(C)

第8页共7页

A.短语B.句柄C.句型D.句子

16.文法G:E-E+TlT

T-*T*P|P

Pf(E)|i

则句型P+T+i的句柄为(B)

A.P+TB.PC.P+T-iD.i

17.文法G:S-*b|A|(T)

T-TVS|S

则FIRSTVT(T)=(C)

A.{b,A,(}B.{b,A,))

C.{b,A,(,V)D.{b,A,),V)

18.产生正规语言的文法为(D)

A.0型B.1型C.2型D.3型

19.任何算符优先文法(D)优先函数。

A.有一个B.没有C.有若干个D.可能有若干个

20.采用自上而下分析,必须(C)

A.消除左递归B.消除右递归

C.消除回溯D.提取公共左因子

21.在规范归约中,用(B)来刻画可归约串。

A.直接短语B.句柄C.最左素短语D.素短语

22.有文法G:EfE*T|T

T-*T+i|i

句子l+2*8+6按该文法G归约,其值为(B)

A.23B.42C.30D.17

23.如果文法是无二义的,那么规范归约是指(B)

A.最左推导的逆过程B.最右推导的逆过程

C.规范推导D.最左归约的逆过程

24.文法G:S-S+T|T

TfT*P|P

P-(S)|i

句型P+T+i的短语有(B)

A.i,P+TB.P,P+T,i,P+T+iC.P+T+iD.P,P+T,i

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

A.指示器B.临时变量C.符号表D.程序变量

26.后缀式ab+cd+/可用表达式(B)来表示。

A.a+b/c+dB.(a+b)/(c-d)C.a+b/(c+d)D.a+b+c/d

27.使用间接三元式表示法的主要目的(A)

A.便于优化处理B.便于表的修改

C.节省存储空间D.生成中间代码更容易

28.表达式(1AVB)A(CVD)的逆波兰表示为(B)

A.-]ABVACDVB.AqBVCDVA

C.ABV-|CDVAD,A-iBVACDV

第9页共7页

二、判断题

i.一个确定有限状态自动机中,有且仅有一个唯一的终态。

2.设R和S分别是字母表£上的正规式,则有L(R|S)=L(R)UL(S)°(7)

3.自动机Ml和M2的状态数不同,则二者必不等价。(X)

4.确定有限自动机以及非确定有限自动机都能正确地识别正规集。(J)

5.对任意一个右线性正规文法G,都存在一个NFAM,满足L(G)=L(M)。(V)

6.对任意一个右线性正规文法G,都存在一个DFAM,满足L(G)=L(M).(V)

7.对任何正规式e,都存在一个NFAM,满足L(M)=L(e)。(V)

8.对任何正规式e,都存在一个DFAM,满足L(M)=L(e)°(J)

9.从一个句型到另一个句型的推导过程是唯一的。(义)

10.词法分析作为单独的一遍来处理较好。(X)

11.一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。(义)

12.二义文法不是上下文无关文法。(义)

13.自上而下分析法是一种“移进一归约”法。(X)

14.文法是描述语言的语法结构的形式规则。(J)

15.产生式是定义语法范畴的一种书写规则。(J)

16.要构造行之有效的自上而下的分析器,则必须消除左递归。(X)

17.如果文法G是无二义的,那么规范归约和规范推导是互逆的两个过程。(V)

18.自下而上的分析法是一种“移进一归约”法。(V)

19.如果文法G是二义的,那么规范归约和规范推导是互逆的两个过程.(*)

三、填空题

I.解释程序和编译程序的区别在于(是否生成目标代码)。

2.编译过程通常可分为5个阶段,分别是(词法分析)、(语法分析)、语义分析与中间代码产生、代

码优化和目标代码生成。

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

4.把语法范畴翻译成中间代码所依据的是(语义规则)。

5.目标代码可以是(汇编)指令代码或(可重定位)指令代码或绝对机器指令代码。

6.词法分析的任务是:输入源程序,对构成源程序的(字符串)进行扫描和分解。

7.源程序中的错误通常分为(语法错误)和(语义错误)两大类。

8.(编译程序)是将源程序翻译成目标程序的程序。

9.一个上下文无关文法G包括四个部分:(终结符号)、(非终结符号)、(开始符号)和一组(产生式)。

10.若%na2n…,则称这个序列是从四到%的一个(推导)。

11.设文法G的开始符号为S,如果s!a则称a是L(G)的一个(句型)。

12.文法G所产生的句子的全体是文法G所定义的(语言)。

13.若一个文法存在某个句子对应的两棵不同的语法树,则称这个文法是(二义文法)。

14.程序语言的单词符号一般可分为五种:(关键字)、(标识符)、常数、(运算符)和界符。

15.(确定有限自动机DFA)是非确定有限自动机NFA的一个特例。

16.对于正规文法G和有限自动机M,若L(G)=L(M)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论