编译原理第二章习题答案Word文档格式.docx

上传人:b****5 文档编号:17483998 上传时间:2022-12-06 格式:DOCX 页数:9 大小:18.70KB
下载 相关 举报
编译原理第二章习题答案Word文档格式.docx_第1页
第1页 / 共9页
编译原理第二章习题答案Word文档格式.docx_第2页
第2页 / 共9页
编译原理第二章习题答案Word文档格式.docx_第3页
第3页 / 共9页
编译原理第二章习题答案Word文档格式.docx_第4页
第4页 / 共9页
编译原理第二章习题答案Word文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

编译原理第二章习题答案Word文档格式.docx

《编译原理第二章习题答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《编译原理第二章习题答案Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。

编译原理第二章习题答案Word文档格式.docx

|bB

问:

相应的正规式是什么G⑸能否改写成为等价的正规文法

正规式是daa*b*;

相应的正规文法为(山自动机化简来):

G[S]:

S^dAA—a|aBB—aB|a|b|bCC—bC|b

也可为(观察得来):

G⑸:

S—dAA—a|aA|aBB—bB|£

4•已知文法G[Z]:

Z->

aZb|ab

<

写出L(G[Z])的全部元素。

Z=>

aZb=>

aaZbb=>

aaa..Z...bbb=>

aaa..ab...bbb

L(G[Z])={anbn|n>

=l}

5.给出语言{aBc叫n>

=l,m>

=O}|ft上下文无关文法。

[分析]

本题难度不大,主要是考上下文无关文法的基本概念。

上下文无关文法的基本定义是:

P,AeVn,PG(VnUVt)\注意关键问题是保证a"

bn的成立,即“a与b的个数要相等”,为此,可以用一条形如A->

aAb|ab的产生式即可解决。

构造上下文无关文法如下:

AB|A

aAb|ab

Bc|c

[扩展]

凡是诸如此类的题都应按此思路进行,本题可做为一个基本代表。

基本思路是这样的:

要求符合anbncm,因为a与b要求个数相等,所以把它们应看作一个整体单元进行,而凸做为另一个单位,初步产生式就应写为S->

AB,其中A推出anbn,B推出凸。

因为m可为0,故上式进一步改写为S->

AB|AC接下来考虑A,凡是要求两个终结符个数相等的问题,都应写为A->

aAb|ab形式,对于B就很容易写成B->

Bc|cT。

6.写一文法,使其语言是偶正整数集合。

要求:

⑴允许0开头;

(2)不允许0开头。

(1)允许0开头的偶正整数集合的文法

E->

NT|G|SFM

T->

NT|G

D|1|3|5|7|9

0|G

G->

2|4|6|8

NS|e

F->

1|3|5|7|9|G

(2)不允许0开头的偶正整数集合的文法

NT|D

FT|G

N|O

D|O

7•已知文法G:

E+T|E-T|T

T*F|T/F|F

(E)|i

试给出下述表达式的推导及语法树

(l)i;

(2)i*i+i(3)i+i*i(4)i+(i+i)

(1)E=>

T=>

F=>

i

(2)E=>

E+T=>

T+T=>

T*F+T=>

F*F+T=>

i*F+T=>

i*i+T=>

i*i+F=>

i*i+i

(3)E=>

F+T=>

i+T=>

i+T*F=>

i+F*F=>

i+i*F=>

i+i*i

(4)E=>

i+F=>

i+(E)=>

i+(E+T)=>

i+(T+T)=>

i+(F+T)=>

i+(i+T)=>

i+(i+F)=>

i+(i+i)

8.为句子i+i*i构造两棵语法树,从而证明下述文法G[<表达式>]是二义的。

〈表达式〉->〈表达式〉〈运算符〉〈表达式〉|(〈表达式〉)|i

〈运算符>->+|-|*|/

可为句子i+i*i构造两个不同的最右推导:

〈表达式〉=>〈表达式〉

〈运算符〉〈表达式〉

=>〈表达式〉

〈运算符〉

1

=>〈表达式〉*

[i

〈表达式〉*i

i*i

=>〈表达式〉+i*i

=>

1+1*1

最右推导2

〈表达式〉=>

〈表达式〉

〈运算符〉i

*i

=>〈表达式〉

=>1+1*1

所以,该文法是二义的。

9.文法G⑸为:

S->Ac|aB

该文法是否为二义的为什么

对于串abc

(l)S=>

⑵S=>

即存在两不同的最右推导

10・考虑下面上下文无关文法:

SS*|SS+|a

(1)表明通过此文法如何生成串aa+a*,并为该串构造语法树。

(2)G⑸的语言是什么

(1)此文法生成串aa+a*的最右推导如下

SS*=>

Sa*=>

SS+a*=>

Sa+a*=>

aa+a*

(2)该文法生成的语言是即加法和乘法的逆波兰式,

令文法G[E]为:

¥

E+T|E-T

证明E+T*F是它的一个句型,指出这个句型的所有短语、直接短语和句柄。

此句型对应语法树如右,故为此文法一个句型。

或者:

因为存在推导序列:

E=>

E+T*F,所以E+T*F句型

此句型相对于E的短语有:

E+T-F;

相对于T的短语有T*F,

直接短语为:

T*F;

o

句柄为:

T*F

12.已知文法G[E]:

E—ET+|TT^TF*|FF—"

|a

试证:

是文法的句型,指出该句型的短语、简单短语和句柄.

该句型对应的语法树如下:

该句型相对于E的短语有FFaa*.相对于J的短语有FFaa*/F;

相对于f的短语有Fa;

Faa;

简单短语有F;

"

;

句柄为F.

13•—个上下文无关文法生成句子abbaa的推导树如下:

⑴给出吊abbaa最左推导、最右推导。

(2)该文法的产生式集合P可能有哪些元素

(3)找出该句子的所有短语、直接短语、句柄。

⑴串abbaa最左推导:

ABS=>

aBS=>

aSBBS=>

BBS=>

bBS=>

bbS=>

bbAa=>

bbaa

最右推导:

ABAa=>

ABaa=>

ASBBaa=>

ASBbaa=>

ASbbaa=>

bbaa=>

(2)产生式有:

S-ABS|Aa|£

A~*a

B—SBB|b

(3)该句子的短语有8ibib2a283、ai、bi>

b2、bib2、82^3、a2;

!

直接短语有ai、bi、b2、a2:

句柄是aio

14•给出生成下列语言的上下文无关文法。

(1){anbnambm|n,m>

=0}

(2){ln0mlm0n|n,m>

=0}

(3){WaWr|W属于{0|a}*,W「表示W的逆}

(1){anbnambm|n,m>

AA

aAbI£

(2){ln0mlm0n|n,m>

1SO|A

OA11e

OSO|1S1|£

15•给出生成下列语言的三型文法。

(1){an|n>

⑵{anbm|n,m>

(3){anb^\nfm^>

I

(1){an|n>

=0}的三型文法为:

aS|e

(2){anbm|n,m>

=l}的三型文法为:

aA

aA|bB

bB|e

(3)何已占山皿1<

>

=0}的三型文法为:

aA|bB|cC|£

bB|cC|£

A

C->

cC|£

16.构造一文法产生任意长的a,b$,使得

|a|<

=|b|<

=2|a|

其中,“|a|”表示a字符的个数;

“|b|”表示b字符的个数。

b的个数在a与2a之间,所以应想到形如aSBS和BSaS的形式,B为1到2个b,即可满足条件。

如分析中所述,可得文法如下:

S-aSBS|BSaS|£

bb|b

第1个产生式为递归定义,由于在第2个产生式中B被定义为1或2个b,所以第1个产生式可以保证b的个数在|a|与2|a|之间,而a与b的位置可以任意排布,所以此文法即为所求,注意第1个产生式中要包括s。

17•下面的文法产生a的个数和b的个数相等的非空a,b$

aB|bA

bS|aBB|b

aS|bAA|a

其中非终结符B推出b比a的个数多1个的串,A则反之。

说明该文法是二义的。

对上述文法略作修改,使之非二义,并产生同样的语言。

(略做修改的含义是:

不增加非终结符。

句子aabbab有两种不同的推导。

aaBB=>

aabB=>

aabbS=>

aabbaB=>

aabbab

aabSB=>

aabbAB=>

即它可以产生两棵不同的语法树,故它是二义的。

修改后的无二义文法如下:

aBS|bAS|aB|bA

bAA|a

给出0,1,2,3型文法的定义。

乔姆斯基(chomsky)ffi文法分成类型,即0型,1型,2型和3型,0型强于1型,1型强于2型,2型强于3型。

如果它的每个产生式□->

P的结构是a£

(VnUVt)•且至少含有一个非终结符,而0丘(VnUVt)S我们说G=(Vt,VN,S,6)是一个0型文法。

0型文法也称短语文法。

一个非常重要的理论结果是,0型文法的能力相当于图灵(Tunring)机。

或者说,任何0型语言都是递归可枚举的;

反之,递归可枚举集必定是一个0型语言。

如果把0型文法分别加上以下的第i条限制,则我们就得i型文法为:

1.G的任何产生式a->

P均满足|a|<

=|P|;

仅仅S->

£

例外,但S不得出现在任何产生式的右部。

2.G的任何产生式为A->

P,AGVn,PG(VnUVt)*

3.G的任何产生式为A->

aB或A->

a,其中A,BWVn

1型文法也称上下文有关文法。

这种文法意味着,对非终结符进行替换时务必考虑上下文,而且,一般不允许替换成空串。

2型文法对非终结符进行替换时无须考虑上下文,

3型文法也称线性文法。

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

当前位置:首页 > 求职职场 > 社交礼仪

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

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