编译原理作业集第二章.docx

上传人:b****4 文档编号:3122812 上传时间:2022-11-17 格式:DOCX 页数:18 大小:112.53KB
下载 相关 举报
编译原理作业集第二章.docx_第1页
第1页 / 共18页
编译原理作业集第二章.docx_第2页
第2页 / 共18页
编译原理作业集第二章.docx_第3页
第3页 / 共18页
编译原理作业集第二章.docx_第4页
第4页 / 共18页
编译原理作业集第二章.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

编译原理作业集第二章.docx

《编译原理作业集第二章.docx》由会员分享,可在线阅读,更多相关《编译原理作业集第二章.docx(18页珍藏版)》请在冰豆网上搜索。

编译原理作业集第二章.docx

编译原理作业集第二章

第二章高级语言及其语法描述

本章要点

1.程序语言的泄义:

2.高级程序语言一般结构和主要共同特征:

3.正确理解上下文无关文法基本槪念,包括:

文法的泄义、推导、句型、句子、语言、语法树、二义性等:

4.Chomsky文法分类:

本章目标

掌握和理解程序语言的宦义、高级语言的一般特征及程序语言的语法描述。

本章重点

1.语法,词法规则与语法规则:

2.语义和语义规则:

3.数据类型与操作:

4.推导,最左推导和最右推导;

5.语法分析树和二义性:

本章难点

1.二义性文法:

2.Chomsky各个文法类:

作业题

一、单项选择题:

(按照组卷方案,至少15道小题)

1.Chomsky把文法分成四种类型,0型、1型、2型和3型。

3型文法也称为,2

型文法也称为U

a.上下文无关文法b.上下文相关文法c.正则文法d.短语文法

2.许多广为使用的语言,如Fortran、C^Pascal等,属于。

a.强制式语言b.应用式语言c.基于规则的语言d.面向对象的语言

3.设G是一个文法,S是开始符号。

若S=>9,ae(VTUVN)\则称a是一个。

a.句子b.句型c.推导d.语言

4.一个数据类型通常包括的三种要素中,没有下面的-

a.用于区别这种类型的数据对象的属性:

b.这种类型的数据对象可以具有的值;

c.对这种类型的数据对象的内存分配:

d.可以作用于这种类型的数据对象的操作:

5.Chomsky把文法分成四种类型,其中,也称正规文法

a.0型b.1型c.2型d.3型

6.语言的词法规则一般用Chomsky的型文法来描述:

a.0b.1c.2d.3

7.文法

S—(L)|a

L—L,SIS

中,下而—是该文法中的终结符号。

a.Sb.,c.Ld.I

8.文法G所描述的语言是的集合。

a.文法G的字母表为中的所有符号组成的符号串:

b.文法G的字母表工的闭包工中的所有符号串;

c.文法G的识别符号推出的所有符号串;

d.文法G的识别符号推出的所有终结符号串;

9.语言L={acaIae(alb)4},该语言是语言。

a.3型语言,b.2型语言,C.1型语言,d.O型语言

10.设有文法G:

I-*I1110IlaIIcIaIbIcI

下面符号串中不是该文法的句子是:

a.abO,b.aOcOl,c.aaa,d.bclO

11.给泄文法A-bAlcc,下而的符号串中,是该文法句子的是。

a.bcbc,b.bbbcc,c.bcbcc,d.bccbcc:

12.Chomsky义的四种形式语言文法中,2型文法可由(G)识别。

a.图灵机:

b.确泄性有限自动机;c.下推自动机:

d.非确左性有限自动机:

13.若文法G立义的语言是无限集,则文法必然是

a.上下文无关的b.递归的c.二义性的d.无二义性的

14.文法S-aaSlabc定义的语言是。

a.{a2kbclk>0)b.{akbclk>0}

c.{a'kJbcIloO}d.{akakbclk>0}

15.

)o

d.xnyxn(n^O)

文法:

G:

S—xSxly所识别的语言是(

a.xyxb.(xyx)*c.x*yx*

1.答案:

1.c.:

2.a.;3.b;4.c:

5.d:

6.d:

7.b:

&d:

9.d;10.a;11.b;12.c:

13.b:

14.c:

15.d;

填空丿

(按照组卷方案,至少15道小题)

1.假设G是一个文法,a是由终结符和非终结符组成的串,S是文法的开始符号,如果S=>a,

则称a是。

2.在赋值语句中,赋值号':

='左右两边的变量劣扮演着两种不同的角色,为了区分一个划

字的这两种特征,我们把一个名字所代表的称为该名的左值,把一个名字的称

为该名字的右值。

3.对于文法G,仅含终结符号的句型称为。

4.设有文法G[S],其部分产生式:

E-E+TIT

T-*T*FIF

F-*(E)la

则%={}.Vt={}。

5.由文法产生的集合是文法产生的语言。

6.Chomsky语法定义的3型文法又可以分为,

7.一个上下文文法G的四个组成部分分别是:

8.已知语言:

{a"b"ambmln,m^O},其语法定义为:

G=({a,b},{S,A,B},S,P),其中

P为:

o

9.已知某语言的语法定义为:

G=({a},{S}S.P),且P:

S-aSI£,则该语言

为°

10.已知某语言为{3cwRloe(a,b}・},其语法定义为G=({a,b,c},{S},S,P),其中P

为:

11.所谓最右推导是指O

12.已知文法G(Z):

E-ET+IT

T-*TF*IF

F-FPtIP

P-*Eli

试写出其识别的一个句子:

3

13.文法G[S]:

S-aAla,A-aS为型文法,其确定的语言的为:

14.在一棵语法树生长过程中的任何时刻,就是

一个句型。

15.我们说G=(Vt,Vn,S,P)是一个0型文法,如果它的每一个产生式a-卩是这样一种结

构:

2.答案:

1.句型;2.单元的地址(或者:

单元、存储单元的地址),值(或者:

单元的内容)3.句子:

4.Vn={E,T,F},Vi={+,*,(,),a):

5.句子:

6.右线性文法和左线性文法:

7.开始符号,产生式集合,终结符集合,非终结符集合:

&S-AB:

A—aAbb:

B-aBbb:

9.{anln^0};10.S—aSalbSble:

11.任何一步an卩都是对a中的最右非终结符进行替换。

12.

13.{a2n+,ln>0};14.所有那些没有后代的末端结点从左到右排列起来;15.a£(VNUVt)♦且至少含有一个非终结符,而0G(VnUVT)\

三、判断题:

(按照组卷方案,至少15道小题)

1.一棵语•法树表示了一个句型所有的不同推导过程,包括最右推导和最左推导。

()

2.可能有两个不同的文法G和G,期中一个是二义的而另一个是无二义的,但是却有L(G)=L(Gf)0()

3.变量既持有左值又持有右值,而常数和带有算符的表达式一般认为只持有右值。

()

4.文法G:

S-*bA

A-*aAla

泄义的语言是所有以b开头的后跟至少一个a的字符串的集合。

()

5.设有文法G:

S-*S*SIS+SI(S)la

该文法是二义的。

()

6.正则文法一定不是二义的。

()

7.上下文无关文法可以产生语言L={anbnc'li>=l,n>=l}o()

8.不存在任何正规文法能产生语言L={anbnIn>=l}o()

9.对于每一个左线性文法Gi,都存在一个右线性文法G2,使得L(Gi)=L(G2)6()

10.正规文法产生的语言都可以用上下文无关文法来描述。

()

11.上下文无关文法比正规文法有更强的描述能力。

()

12.文法的二义性和语言的二义性在概念上是相同的,也就是说,对于某个语言,不可能存在两个以上的文法来描述它。

()

13.二义性是可以判泄的,也就是说,可以编这么一个程序,输入该文法后,该程序能确切地给出该文法是否二义的答案。

()

14•说明语句旨在左义名字的性质。

编译程序把这些性质登记在符号表中,并检查程序中名字的引用和说明是否一致。

实际上,许多说明语句并不能翻译成相应的目标代码。

()

15.C语言是一个允许子程序嵌套定义的语言。

()

3.答案:

1.7:

2.7:

3.7:

4.7:

5.7:

6.X;7.Q:

&7:

9.Q:

10.7:

11.7:

12.X;13.X;14.>1:

15.X;

四、名词解

q-r•

(按照组卷方案,至少3道小题)

1.二义性文法:

2.推导和直接推导:

3.句型,句子和语言;4.上下文无关文法;

5.语法;6.正规文法(左线性文法和右线性文法):

4.答案:

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

2.设A-y是一个产生式,且cc、pe(VToVN)*,若aAp=>ayp,则称aA卩直接推出。

祁:

或者说,旳卩是aA0的一个直接推导。

如果ai=>a2=>……=>an,则称这个序列是从a】到*的一个推导。

3.设G是一个文法,S是它的开始符号。

如果S=>*a,则称a是一个句型。

仅含终结符的句型叫句子。

文法G所产生的句子的全体叫文法G的语言,记为L(G),L(G)={alS=>a,aGVT*)o

4.上下文无关文法G是一个四元式(Vt,Vn,S,P),其中:

Vt是一个非空有限集合,其中的每一个元素称为终结符:

Vn是一个非空有限集合,其中的每一个元素称为非终结符,vNnv-^0:

S是一个非终结符,称为开始符号:

P是一个产生式有限集合,每个产生式的形式是P-*a,英中PgVn,

开始符号S至少必须在某个产生式的左部出现一次。

5.若文法G=(Vt,Vn.S,P)的任何产生式为A-aB或A-a,其中,aeVT\A,BGVn,则称G是右线性文法:

若文法G=(Vr,Vn,S,P)的任何产生式为A-*Ba或A-a,其中,aeVT\A,BGVN,则称G是左线性文法:

左线性文法和右线性文法均为正规文法。

五、简答题:

(按照组卷方案,至少3逍小题)

1.作为描述程序i马言的上下文无关文法,对它有哪些限制?

答:

第一点:

文法中不含任何下而形式的产生式:

P-P;

第二点:

每个非终结符P都必须有用处。

也就是说,必须存在含P的句型;或者说,对P不存在永不终结的回路。

2.什么是二义性文法?

从输入串abab来说明下而文法二义吗?

S—>aSbS[bSaS|£

该文法产生的语言是什么?

答:

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

例如输入串abab,它有两棵语法树如下:

所以,该文法是二义的。

此文法产生的语言是:

所有a的个数与b的个数相等的由a和b组成的字符串。

3.文法G[S]为:

S-*AclaB

A—ab

B-*bc

该文法是否为二义的?

为什么?

答:

对于串abc

(1)S=>Ac=>abc

(2)S=>aB=>abc

即存在两不同的最右推导。

所以,该文法是二义的。

或者:

对输入字符串abc,能构造两棵不同的语法树,所以它是二义的。

4已知文法G=({A,B,C},{abc},P,A),P由以下产生式组成:

A—abc

A-*aBbc

Bb-bB

Be—Cbcc

bC-Cb

aC-*aaB

aC-*aa

此文法所表示的语言是什么?

答:

分析文法的规则:

每使用一次Bc-Cbcc,b、c的个数各增加一个:

每使用一次aC-*aaB或aC-*aa,a的个数就增加一个:

产生式Bb-bB、bC-Cb起连接转换作用。

由于A是开始符号,由产生式A-abc推导得到终结符号串abc;由产生式A-aBbe推导得到B后,每当使用产生式Bb-bB、Be-Cbcc、bC-Cb、aC-aaB就会递归调用B一次,所产生的a、b、c的个数分别增加一个,因此推导所得的终结符号串为abc、aabbcc、aaabbbccc^…所以文法描述的语言为{anbncnln>0}.

5已知文法G[Z]:

Z-0UI1V

U-1ZI

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

当前位置:首页 > 农林牧渔 > 林学

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

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