编译原理课后习题答案Word文件下载.doc

上传人:b****2 文档编号:14375717 上传时间:2022-10-22 格式:DOC 页数:28 大小:425.50KB
下载 相关 举报
编译原理课后习题答案Word文件下载.doc_第1页
第1页 / 共28页
编译原理课后习题答案Word文件下载.doc_第2页
第2页 / 共28页
编译原理课后习题答案Word文件下载.doc_第3页
第3页 / 共28页
编译原理课后习题答案Word文件下载.doc_第4页
第4页 / 共28页
编译原理课后习题答案Word文件下载.doc_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

编译原理课后习题答案Word文件下载.doc

《编译原理课后习题答案Word文件下载.doc》由会员分享,可在线阅读,更多相关《编译原理课后习题答案Word文件下载.doc(28页珍藏版)》请在冰豆网上搜索。

编译原理课后习题答案Word文件下载.doc

D|ND

0|1|2|3|4|5|6|7|8|9

请给出句子123、301和75431的最右推导和最左推导。

NDÞ

N3Þ

ND3Þ

N23Þ

D23Þ

123

NDDÞ

DDDÞ

1DDÞ

12DÞ

N1Þ

ND1Þ

N01Þ

D01Þ

301

3DDÞ

30DÞ

N31Þ

ND31Þ

N431Þ

ND431Þ

N5431Þ

D5431Þ

75431

NDDDÞ

NDDDDÞ

DDDDDÞ

7DDDDÞ

75DDDÞ

754DDÞ

7543DÞ

4.证明文法Sà

iSeS|iS|i是二义性文法。

对于句型iiSeS存在两个不同的最左推导:

iSeSÞ

iiSes

iSÞ

iiSeS

所以该文法是二义性文法。

5.给出描述下面语言的上下文无关文法。

(1)L1={anbnci|n>

=1,i>

=0}

(2)L2={aibj|j>

=i>

=1}

(3)L3={anbmcmdn|m,n>

=0}

(1)Sà

AB

aAb|ab

cB|e

(2)Sà

ASb|ab

a|e

(3)Sà

aSd|A|e

bAc|e

6.设计一个最简的DFAM,使其能够识别所有的被3整除的无符号十进制整数。

7.设计一个DFA,使其能够接受被4整除的二进制数。

8.写出表达下列各项的正则表达式。

(1)二进制数且为5的倍数。

(2)Σ={a,b,c},第一个a位于第一个b之前的字符串。

(3)Σ={a,b,c},包含偶数个a的字符串。

(4)Σ={0,1},不包含11子串的字符串。

(1)

可以先画出相应的有限自动机:

添加新的开始状态S和终止状态T:

根据以上自动机,列出以下方程:

①S=A

②A=0A+1B+T

③B=0C+1D

④C=0E+1A

⑤D=0B+1C

⑥E=0D+1E

解以上方程组:

⑥Þ

E=1*0D

②Þ

A=0*1B+0*T

⑥代入④Þ

C=01*0D+1A

⑤代入④Þ

C=01*00B+01*01C+1A

Þ

C=xB+yA

其中x=(01*01)*01*00y=(01*01)*1

⑤代入③Þ

B=0C+10B+11C

Þ

B=(0|11)C+10B

B=(10)*(0|11)C

将C=xB+yA代入上式Þ

B=uB+vA

Þ

B=u*vA

其中u=(10)*(0|11)xv=(10)*(0|11)y

将B=u*vA代入②Þ

A=0*1u*vA+0*T

A=(0*1u*v)*0*T

将A代入①Þ

S=(0*1u*v)*0*T

串(0*1u*v)*0*即为所求。

(2)该题目理解为:

至少有一个a和一个b,且a出现在b的前面(可以有间隔),则答案为:

c*a(a|c)*b(a|b|c)*

(3)((b|c)*a(b|c)*a)*(b|c)* (a(b|c)*a|b|c)*

(4)(0|10)*(1|e)

第三章

1.词法分析器的功能是什么?

读源程序的字符序列,逐个拼出单词,并构造相应的内部表示TOKEN;

同时检查源程序中的词法错误。

2.试分析分隔符(空格、跳格及回车等)对词法分析的影响。

空格、跳格、回车等分隔符号对词法分析不起作用,可以删除。

但是回车符号可以用于错误定位,所以在删除回车符号前需要统计回车的个数。

3.给出识别C语言全部实型常数的自动机。

(+|-|e)([1-9][0-9]*|0)(.[0-9][0-9]*|e)(E(+|-|e)[0-9][0-9]*)

4.写出识别C语言中所有单词的LEX程序。

L=[A-Z]|[a-z]

D=[0-9]

D1=[1-9]

%%

(L|_)(L|D|_)* {return

(1);

}

D1D* {return

(2);

+ {return(3);

……

第四章

1.设有如下文法G[S]:

aABbcd|e

ASd|e

SAh|eC|e

Sf|Cg|e

(1)求每个产生式的Predict集。

(2)该文法是否为LL

(1)文法?

为什么?

Predict(Sà

aABbcd)={a}

e)={#,d,f,a,h}

Predict(Aà

ASd)={a,d}

e)={h,a,d,b,e}

Predict(Bà

SAh)={a,d,h}

eC)={e}

e)={b}

Predict(Cà

Sf)={a,f}

Cg)={a,f,g}

e)={g,b}

(2)由于Predict(Aà

ASd)Ç

Predict(Aà

e)¹

Æ

,所以该文法不是LL

(1)文法。

2.下列描述括号匹配的文法中,哪些是LL

(1)文法?

(1) Sà

(SS’|e

S’à

)|e

(2) Sà

(S)S|e

(3) Sà

S(S)S|e

(4) Sà

(S|S’

S’à

(S’)|e

(1)不是,

(2)是,(3)不是,(4)不是

3.已知文法G[E]:

E+T|T

T*F|F

i|(E)

请按递归下降法构造该文法的语法分析程序。

求产生式的predict集合:

predict(Eà

E+T)={i,(}

T)={i,(}

predict(Tà

T*F)={i,(}

F)={i,(}

由于文法中非终极符号E和T对应的产生式的predict集合的交集都不为空,所以该文法不满足自顶向下分析的条件,现对文法进行等价变换得到如下文法:

TE’

E’à

+TE’|e

FT’

T’à

*FT’|e

i

(E)

求新文法的predict集合:

Predict(Eà

TE’)={(,i}

Predict(E’à

+TE’)={+}

e)={#,)}

Predict(Tà

FT’)={i,(}

Predict(T’à

*FT’)={*}

e)={+,),#}

Predict(Fà

i)={i}

(E))={(}

由于以上文法中任意非终极符号对应的产生式的predict集合的交集都为空,所以满足自顶向下分析的条件,所以可以写出如下的递归下降语法分析伪代码:

VoidE()

{if(tokenÎ

{(,i}){T();

E’();

elseError();

voidE’()

{+}){Match(‘+’);

T();

elseif(tokenÎ

{#,)}){;

voidT()

{i,(}){F();

T’();

voidT’()

{*}){Match(‘*’);

F();

{+,),#}){;

voidF()

{i}){Match(‘i’);

{(}){Match(‘(‘);

E();

Match(‘)’);

4.构造一个LL

(1)文法G,它能识别语言L:

L={w|w为字母表S上不包括两个相邻的1的非空串},其中S={0,1}。

并证明你所构造的文法是LL

(1)文法。

0E|1F

0E

B|e

C|e

0E)={0}

1F)={1}

B)={0,1}

e)={#}

C)={0}

对任意非终极符号对应的产生式的predict集合的交集都为空,所以该文法是LL

(1)文法。

5.已知文法G[A]为:

aABe|a

Bb|d

(1)试给出与G[A]等价的LL

(1)文法G’[A]。

(2)构造G’[A]的LL

(1)分析表并给出输入串aade#的分析过程。

(1)所求G’[A]为:

aA’

(1)

A’à

ABe

(2)

A’à

e (3)

dB’ (4)

B’à

bB’ (5)

B’à

e (6)

aA’)={a}

Predict(A’à

ABe)={a}

e)={#,d}

dB’)={d}

Predict(B’à

bB’)={b}

e)={e}

(3)分析表如下:

a

b

d

e

#

A

A’

(2)

(3)

B

(4)

B’

(5)

(6)

aade#的分析过程如下

分析栈

输入流

动作

A#

aade#

替换

(1)

aA’#

匹配

A’#

ade#

替换

(2)

ABe#

aA’Be#

A’Be#

de#

替换(3)

Be#

替换(4)

dB’e#

B’e#

e#

替换

成功

第五章(这章答案是错的)

1

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

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

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

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