形式语言第二章参考答案蒋宗礼Word格式文档下载.docx

上传人:b****6 文档编号:18958784 上传时间:2023-01-02 格式:DOCX 页数:18 大小:222.91KB
下载 相关 举报
形式语言第二章参考答案蒋宗礼Word格式文档下载.docx_第1页
第1页 / 共18页
形式语言第二章参考答案蒋宗礼Word格式文档下载.docx_第2页
第2页 / 共18页
形式语言第二章参考答案蒋宗礼Word格式文档下载.docx_第3页
第3页 / 共18页
形式语言第二章参考答案蒋宗礼Word格式文档下载.docx_第4页
第4页 / 共18页
形式语言第二章参考答案蒋宗礼Word格式文档下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

形式语言第二章参考答案蒋宗礼Word格式文档下载.docx

《形式语言第二章参考答案蒋宗礼Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《形式语言第二章参考答案蒋宗礼Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。

形式语言第二章参考答案蒋宗礼Word格式文档下载.docx

(7)请总结一下,在构造文法时,可以从哪几个方面入手?

✓我们可以将其类比于软件工程中的概念:

-)

✓首先,也是最重要的一点,需求分析,我们需要知道需要构造的语言的特点,具体表现形式,以及一些需要注意的细节,通过一些特例提炼特点。

✓其次,概要设计,将语言从具体中抽象到符号上,按照其特性将其划分类别。

✓再次,详细设计,将每一部分抽象的成果具体化,将所有细节符号化

✓再次,编码,将详细设计的结果用文法符号的语言表示出来

✓最后,测试,找出边缘数据,特殊数据进行测试。

(8)按照文法的乔姆斯基体系,文法被分为几类?

各有什么样的特点?

分为四类:

✓文法G={V,T,P,S},对应的L(G)则为0型文法或短语结果文法。

✓如果对于

,均有

成立,则称G为1型文法或上下文有关文法,对应的L(G)称为1型语言。

成立,且

成立,则称G为2型文法,或上下文无关文法,对应的L(G)为2型语言。

,所有

均有:

成立,其中

则称G为3型文法,或正则文法,对应的L(G)称3型语言。

(9)什么叫左线性文法?

什么叫右线性文法?

什么叫线性文法

✓文法G={V,T,P,S},如果对于

成立,

则称G为线性文法。

则称G为右线性文法。

则称G为左线性文法。

(10)既然已经定义2-10中允许RL包含空语句

,那么定理2-6和定理2-7还有什么意义?

✓此为定义与定理的区别,定义2-10是针对文法G是RG的情况下,定义其产生式加上

后仍为RG,G的语言仍为RL,而定理2-6和定理2-7针对的前提条件是如果L为RL,他们都是通过定义2-10证明得到的,可以在以后的推论中直接应用的。

*******************************************************************************

2.设L={0n|n≥1},试构造满足要求的文法G.

(1)G是RG.

(2)G是CFG,但不是RG.

(3)G是CSG,但不是CFG.

(4)G是短语结构文法,但不是CSG.

解答:

1:

S→0|0S

2:

S→0|0S|SS

3:

S→0|0S|AS

AS→SA

AS→0A

0A→S0

0AS→00

4:

AS→SA|ABB

ABB→AS

AB→A|ε

3.设文法G的产生式集如下,试给出句子id+id*id的两个不同的推导和两个不同的归约

E→id|c|+E|-E|E+E|E-E|E*E|E/E|E**E|Fun(E)(褚颖娜02282072)

推导:

(1)E=>

E+E=>

E+E*E=>

E+E*id=>

E+id*id=>

id+id*id

(2)E=>

E*E=>

E*id=>

E+id*id=>

归约:

(1)id+id*id<

=E+id*id<

=E+E*id<

=E+E*E<

=E+E<

=E

(2)id+id*id<

=E*id<

=E*E<

******************************************************************************

2.4设文法G的产生式集如下,试给出句子aaabbbccc的至少两个不同的推导和至少两个不同的归约(02282081刘秋雯)

bB→bb

CB→BC

bC→bc

cC→cc

解:

推导一:

S→aBC|aSBC

aB→ab

S=>

aSBC

=>

aaSBCBC

aaaBCBCBC

aaabCBCBC

aaabBCCBC

aaabbCCBC

aaabbCBCC

aaabbBCCC

aaabbbCCC

aaabbbcCC

aaabbbccc

推导二:

=>

aaaBBCCBC

aaaBBCBCC

归约一、归约二分别为推导一和推导二的逆过程

5句子abeebbeeba的一个推导如下:

(陈伟芳学号?

S=>

aAa使用产生式SaAa

aSSa使用产生式ASS

abAbSa使用产生式SbAb

abSSbSa使用产生式ASS

abeSbSa使用产生式Se

abeebSa使用产生式Se

abeebbAba使用产生式SbAb

abeebbSSba使用产生式ASS

abeebbeSba使用产生式Se

abeebbeeba使用产生式Se

不能给出abeebbeeb的归约,因为由文法G中产生式推出的句子只有三种情况:

头尾都是a,头尾都是b,或者只有一个e,而abeebbeeb上面三个条件都不符合,所以它不是文法G的一个句子,当然也就不能给出它的一个归约了。

2.6设文法G的产生式集如下,请给出G的每个语法范畴代表的集合.

S→aSa|aaSaa|aAa

A→bA|bbbA|bB

B→cB|cC

C→ccC|DD

D→dD|d

解:

set(D)={d}+

set(C)={c2ndm|m≥2n≥0}

set(B)={cndm|m≥2n≥1}

set(A)={bpcndm|p≥1,m≥2,n≥1}

set(S)={aqbpcndmaq|p≥1,m≥2,n≥1,q≥1}

7.给定如下文法,请用自然语言描述它们定义的语言。

(吴贤珺02282047)

A→aaA│aaB

B→Bcc│D#cc

D→bbbD│#

该语言由四部分组成:

第一部分是偶数个a(至少有两个),第二部分是3的倍数个b(可以是0个),第三部分是两个“#”号,第四部分是偶数个c(至少有两个)。

A→0B│1B│2B

B→0C│1C│2C

C→0D│1D│2D│0│1│2

D→0B│1B│2B

该语言的句子是字母表∑={0,1,2}上所有长度为3的倍数的字符串,且非空。

B→0C│1B│2B

C→0E│1D│2D│0│1│2

D→0C│1B│2B

E→0E│1D│2D│0│1│2

观察发现C和E所对应产生式右部是相同的。

所以将文法化简成如下的形式:

C→0C│1D│2D│0│1│2

作出状态图如下:

可以看出从初始状态A到终态F,至少要经过A→B→C→F的过程,所以字符串的长度至少为3。

而且,到F只能经过C,如果到达C后走其它的路径,那么所经过的弧上的字符串都是以0为结尾,也就是要回到C,最后一个字符一定是0。

这样,该文法所确定的语言就是所有倒数第2个字符是0的串。

S→aB│bA

A→a│aS│BAA

B→b│bS│ABB

由于该文法所确定的语言一时不易看出,可以先考虑简单的形式:

S→aB│bA

A→a│aS

B→b│bS

不难看出,该文法所确定的语言为所有由ab和ba组成的串,且非空。

这些串有一个特点,就是a和b的个数相等。

然后,把产生式A→BAA和B→ABB加回到原来的文法中,并且可以把这两个产生式看成是在左部的符号前分别加上串BA和AB。

不妨把它们看成一个符号C和D。

这样原文法可以改造成如下形式:

A→a│aS│CA

B→b│bS│DB

C→BA

D→AB

发现插入的C和D所导入的A和B是成对的,原文法所确定的语言可能就是字母表∑={a,b}上所有含有相同个a和b的字符串,且非空。

从上面简单形式的文法中已经看到,它所确定的字符串比a和b个数相同的所有串少的只是多个a或b连续的情况。

而加上产生式A→BAA和B→ABB后则刚好满足。

例如:

由S推出aB后,在B前“插入”D(即AB),可由AB中的A推出a,就得到aaBB,如此类推,最终可得该文法所接受的语言为:

字母表∑={a,b}上所有a和b个数相等的非空字符串。

8.设∑={0,1},请给出∑上的下列语言的文法

(1)所有以0开头的串

S→0A|0

A→0|1||0A|1A

(2)所有以0开头以1结尾的串

S→0A

A→1|0A|1A

(3)所有以11开头以11结尾的串

S→11A|11

A→11|0A|1A

(4)所有最多有一对连续的0或者最多有一对连续的1

1:

x中既没有成对的0,也没有成对的1

2:

x有一对连续的0

3:

x有一对连续的1

4:

x中既有一对连续的0,也有一对连续的1

S→A|B|C|D

A→ε|A’|A”

A’→0|01|01A’

A”→1|10|10A”

B→B’00B”

B’→1|01|1B’|01B’

B”→1|10|1B”10B”

C→C’11C”

C’→0|10|0C’|10C’

C”→0|01|0C”|01C”

D→E00F11H|P11G00K

E→1|1E’|E’

E’→01E’|E’

F→ε|10|10F//F以1开头,以0结尾;

不含连续0和连续1

H→0|H’0|H’

H’→01|01H’

P→0|0P’|P’

P’→10P’|10

G→ε|01|01G//G以0开头,以1结尾;

K→1|K’1|K’

K’→10|10K’

(5)所有最多有一对连续的0而且最多有一对连续的1

x只有一对连续的0,没有连续的1

y只有一对连续的1,没有连续的0

B→B’00B”’

B’→ε|1|01|01B’’|1B’’//B’是不含连续0,也不含连续1的串

B’’→01|01B’’

B”’→ε|1|10|10B””//B””是不含连续0,也不含连续1的串

B””→10|10B””

C→C’11C”’//C’是不含连续1,也不含连续0的串

C’→ε|0|10|0C”|10C”

C”→10|10C”

C”’→ε|0|01|01C””//C””是不含连续1,也不含连续0的串

C””→01|01C””

(6)所有长度为偶数的串

S→01|10|00|11|01S|10S|00S|11S

(7)所有包含子串01011的串

S→X01011Y

X→ε|0X|1X

Y→ε|0Y|1Y

(8)所有含有3个连续0的串

S→X000Y

2.9设

,构造下列语言的文法。

(1)

解答:

(2)

(3)

S→aAB|aSAB

BA→AB

aB→ab

bA→ba

aA→aa

(4)

(5)

(6)

(7)

(8)

第10题参见下题:

11、给定RG

试分别构造满足下列要求的RGG,并证明你的结论。

P={S→α|S1→α∈P1}∪{S→ε}∪{S→αS|S1→α∈P1}

证明略。

P={S→α|S1→α∈P1}∪{S→αS|S1→α∈P1}

12.设文法G有如下产生式:

A→a│aS│bAA

B→b│bS│aBB

证明L(G)={ω│ω中含有相同个数的a和b,且ω非空}。

证:

观察发现A的产生式A→bAA中的bA可以用S来代替,同样B的产生式B→aBB中的aB也可以用S代替。

这样原来的文法可以化为如下的形式:

A→a│aS│SA

B→b│bS│SB

进一步地,可以把产生式A→aS中的S代换,把文法化为如下的形式:

A→a│aaB│abA│SA

B→b│baB│bbA│SB

下面,我们就对字符串ω的长度施归纳,同时证明以下三个命题成立。

ωiffω中含有相同个数的a和b,且ω非空。

ωiffω中含有a的个数比b的个数恰好多一个。

ωiffω中含有a的个数比b的个数恰好少一个。

第一步,由于只有A和B可以直接推出终结符,当ω的长度为1时,直接用A推出a或直接用B推出b。

直接用A推出a时,ω中a的长度为1,b的长度为0,含有a的个数比b的个数恰好多一个。

直接用B推出b时,b的长度为1,a的长度为0,ω中含有a的个数比b的个数恰好少一个。

这样,由S→aB│bA,知S推出的最短串,分别是ab和bb,其长度是2,并且a和b的个数相等。

第二步,假设上面的三个命题对长度为x的串成立。

对S,x=2n(n≥1);

对A和B,x=2n+1(n≥0)。

我们可以看到,由A或B推出的串长度如果要变长的话,必须把A或B用其除A→a或B→b之外的产生式代替。

).考虑代替A的情形。

若A用aaB代替,由假设B中a的个数比b的个数恰好少一个,则aaB中a的个数比b的个数恰好多一个。

若A用abA代替,由假设A中a的个数比b的个数恰好多一个,则abA中a的个数比b的个数恰好多一个。

若A用SA代替,由假设A中a的个数比b的个数恰好多一个,而S中a和b的个数相等,则SA中a的个数仍然比b的个数恰好多一个。

).考虑代替B情形。

若B用baB代替,由假设B中a的个数比b的个数恰好少一个,则baB中a的个数比b的个数也恰好少一个。

若B用bbA代替,由假设A中a的个数比b的个数恰好多一个,则bbA中a的个数比b的个数恰好少一个。

若B用SB代替,由假设B中含有a的个数比b的个数恰好少一个,而S中a和b的个数相等,则SB中a的个数仍然比b的个数恰好少一个。

这样,命题

就得到了证明。

又由于S的产生式只有S→aB│bA,由以上两个命题,显然有命题

成立。

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

当前位置:首页 > 初中教育 > 英语

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

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