编译原理课后答案.docx

上传人:b****3 文档编号:4143413 上传时间:2022-11-28 格式:DOCX 页数:50 大小:29.33KB
下载 相关 举报
编译原理课后答案.docx_第1页
第1页 / 共50页
编译原理课后答案.docx_第2页
第2页 / 共50页
编译原理课后答案.docx_第3页
第3页 / 共50页
编译原理课后答案.docx_第4页
第4页 / 共50页
编译原理课后答案.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

编译原理课后答案.docx

《编译原理课后答案.docx》由会员分享,可在线阅读,更多相关《编译原理课后答案.docx(50页珍藏版)》请在冰豆网上搜索。

编译原理课后答案.docx

编译原理课后答案

 

第二章

 

P36-6

(1)

L(G1)是0~9组成的数字串

(2)

最左推导:

N

ND

NDD

NDDD

DDDD

0DDD

01DD

012D0127

N

ND

DD

3D

34

N

ND

NDD

DDD

5DD

56D

568

最右推导:

N

ND

N7

ND7

N27

ND27

N127

D127

0127

N

ND

N4

D4

34

N

ND

N8

ND8

N68

D68

568

 

P36-7

G(S)

O1|3|5|7|9

N2|4|6|8|OD0|N

SO|AOAAD|N

P36-8

文法:

ET|ET|ET

TF|T*F|T/FF(E)|i

最左推导:

E

ET

TT

FTiT

iT*F

iF*F

ii*Fii*i

E

T

T*F

F*F

i*F

i*(E)i*(ET)

i*(TT)

i*(FT)

i*(i

T)

i*(i

F)

i*(i

i)

最右推导:

E

ET

ET*F

ET*i

EF*i

Ei*i

Ti*i

Fi*iii*i

E

T

F*T

F*F

F*(E)

F*(ET)

F*(EF)

F*(Ei)

F*(Ti)

F*(Fi)

F*(ii)

i*(ii)

语法树:

/********************************

 

E

E

E

E

+

T

E

+

T

E

-

T

E

+

T

F

T

T

*

F

E

-

T

F

T

F

i

F

F

i

T

F

i

F

i

i

i

F

i

i

i

i+i+i

i-i-i

i+i*i

*****************/

P36-9

句子iiiei有两个语法树:

SiSeSiSeiiiSeiiiiei

SiSiiSeSiiSeiiiiei

 

P36-10

/**************

STS|T

T(S)|()

***************/

P36-11

/***************

L1:

S

AC

A

aAb|ab

C

cC|

L2:

S

AB

A

aA|

B

bBc|bc

L3:

 

SAB

AaAb|BaBb|

L4:

SA|BA0A1|B1B0|A

***************/

第三章习题参考答案

 

P64–7

(1)

1(01|)*101

XY

 

0

 

1

1

0

1

X

1

2

3

4

5

Y

 

1

确定化:

0

1

{X}

φ

{1,2,3}

φ

φ

φ

{1,2,3}

{2,3}

{2,3,4}

{2,3}

{2,3}

{2,3,4}

{2,3,4}

{2,3,5}

{2,3,4}

{2,3,5}

{2,3}

{2,3,4,Y}

{2,3,4,Y}

{2,3,5}

{2,3,4,}

0

 

1

0

2

3

0

0

0

1

1

0

1

0

1

5

6

4

0

1

11

最小化:

 

{0,1,2,3,4,5},{6}

{0,1,2,3,4,5}0

{1,3,5}

{0,1,2,3,4,5}1

{12,,4,6}

{0,1,2,3,4},{5},{6}

{0,1,2,3,4}0

{1,3,5}

{0,1,2,3},{4},{5},{6}

{0,1,2,3}0

{1,3}

{0,1,2,3}1

{12,,4}

{0,1},{

2,3}{4},{

5},{

6}

{0,1}0

{1}

{0,1}1

{1,2}

{2,3}0

{3}

{2,3}

1

{4}

{0},{1},{2,3},{4},{5},{6}

0

 

1

02

0010

0

1

1

3

4

5

0

1

11

 

P64–8

(1)

(1|0)*01

(2)

(1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*(0|5)|(0|5)

(3)

0*1(0|10*1)*|1*0(0|10*1)*

 

P64–12

(a)

a

 

a,b

01

a

 

确定化:

a

b

{0}

{0,1}

{1}

{0,1}

{0,1}

{1}

{1}

{0}

φ

 

φφφ

 

给状态编号:

a

b

0

1

2

1

1

2

2

0

3

3

3

3

 

a

 

a

0

1

a

b

b

b

b

2

3

a

最小化:

{0,1},{

2,3}

{0,1}a

{1}

{0,1}b

{2}

{2,3}a

{0,3}

{2,3}b

{3}

{0,1},{

2},{

3}

a

a

b

b

0

1

2

a

b

(b)

b

b

a

0

2

3

a

b

a

ab

b

a

5

1

4

a

a

 

已经确定化了,进行最小化

 

最小化:

{{0,1},{2,3,4,5}}

{0,1}a

{1}

{0,1}b

{2,4}

{2,3,4,5}a{1,3,0,5}

{2,3,4,5}b{2,3,4,5}

{2,4}a

{1,0}

{2,4}b

{3,5}

{3,5}a

{3,5}

{3,5}b

{2,4}

{{0,1},{

2,4},{

3,5}}

{0,1}a

{1}

{0,1}b

{2,4}

{2,4}a

{1,0}

{2,4}b

{3,5}

{3,5}a

{3,5}

{3,5}b

{2,4}

 

bba

012

ab

 

a

 

P64–14

(1)0

1

0

1

0

 

(2):

 

X

|)

*

010

Y

 

2

0

1

 

X1Y

 

0

 

确定化:

0

1

{X,1,Y}

{1,Y}

{2}

 

{1,Y}

{1,Y}

{2}

{2}

{1,Y}

φ

φ

φ

φ

给状态编号:

0

1

0

1

2

1

1

2

2

1

3

3

3

3

0

0

0

1

1

0

1

1

1

2

3

0

最小化:

{0,1},{2,3}

{0,1}0

{1}

{0,1}1

{2}

{2,3}0

{1,3}

{2,3}1

{3}

{0,1},{2},{3}

0

1

1

1

0

1

3

0

0

第四章

 

P81–1

(1)按照T,S的顺序消除左递归

G(S)

Sa|^|(T)

TST

T,ST|

递归子程序:

procedureS;

begin

ifsym='a'orsym='^'

thenabvance

elseifsym='('

 

thenbegin

advance;T;

ifsym=')'thenadvance;

elseerror;

end

elseerror

end;

procedureT;

begin

S;T

end;

procedureT;

begin

ifsym=','

thenbegin

advance;

S;T

end

end;

其中:

sym:

是输入串指针IP所指的符号

advance:

是把IP调至下一个输入符号

error:

是出错诊察程序

(2)

FIRST(S)={a,^,(}

FIRST(T)={a,^,(}

FIRST(T)={,,}

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

FOLLOW(T)={)}

FOLLOW(T)={)}

预测分析表

a^(),#

SSaS^S(T)

TTSTTSTTST

TTT,ST

是LL

(1)文法

P81–2

文法:

 

ETE

EE|

TFT

TT|

FPF

F*F|

P(E)|a|b|^

(1)

FIRST(E)={(,a,b,^}

FIRST(E')={+,

ε}

FIRST(T)={(,a,b,^}

FIRST(T')={(,a,b,^,

ε}

FIRST(F)={(,a,b,^}

FIRST(F')={*,

ε}

FIRST(P)={(,a,b,^}

FOLLOW(E)={#,)}

FOLLOW(E')={#,)}

FOLLOW(T)={+,),#}

FOLLOW(T')={+,),#}

FOLLOW(F)={(,a,b,^,+,),#}

FOLLOW(F')={(,a,b,^,+,),#}

FOLLOW(P)={*,(,a,b,^,+,),#}

(2)

考虑下列产生式:

E

E|

TT|

F*F|

P(E)|^|a|b

FIRST(+E)∩FIRST(ε)={+}

∩{ε}=φ

FIRST(+E)∩FOLLOW(E')={+}∩{#,)}=

φ

FIRST(T)

∩FIRST(ε)={(,a,b,^}

∩{ε}=φ

FIRST(T)

∩FOLLOW(T')={(,a,b,^}

∩{+,),#}=

φ

FIRST(*F')∩FIRST(ε)={*}∩{ε}=φ

FIRST(*F')∩FOLLOW(F')={*}∩{(,a,b,^,+,),#}=

FIRST((E))∩FIRST(a)∩FIRST(b)∩FIRST(^)=

所以,该文法式LL

(1)文法.

 

φ

φ

(3)

+

*

a

b

^

#

E

ETE'

ETE'

E

TE'E

TE'

E'

E

E

E

E

T

TFT

TFT

T

FT

T

FT

T'

T

T

TT

T

TT

TT

TT

 

F

F'

P

 

FPFFPFFPFFPF

 

FF*FFFFFFF

P(E)PaPbP^

(4)

procedureE;

begin

ifsym='('orsym='a'orsym='b'orsym='^'

thenbeginT;E'end

elseerror

end

procedureE';

begin

ifsym='+'

thenbeginadvance;Eend

elseifsym<>')'andsym<>'#'thenerror

end

procedureT;

begin

ifsym='('orsym='a'orsym='b'orsym='^'

thenbeginF;T'end

elseerror

end

procedureT';

begin

ifsym='('orsym='a'orsym='b'orsym='^'

thenT

elseifsym='*'thenerror

end

procedureF;

begin

ifsym='('orsym='a'orsym='b'orsym='^'

thenbeginP;F'end

elseerror

end

procedureF';

begin

ifsym='*'

thenbeginadvance;F'end

end

procedureP;

begin

ifsym='a'orsym='b'orsym='^'

thenadvance

elseifsym='('then

 

begin

advance;E;

ifsym=')'thenadvance

elseerror

end

elseerror

end;

P81–3

/***************

(1)是,满足三个条件。

(2)不是,对于A不满足条件3。

(3)不是,A、B均不满足条件3。

(4)是,满足三个条件。

***************/

第五章

 

P133–1

EETET*F

短语:

E+T*F,T*F,

直接短语:

T*F

句柄:

T*F

P133–2

文法:

Sa|^|(T)TT,S|S

(1)

最左推导

:

S(T)(T,S)

S(T,S)(S,S)

(((T,S),S,S)),S)

(((a,a),^,S),S)

(S,S)(a,S)(a,(T))(a,(T,S))

((T),S)((T,S),S)((T,S,S),S)

(((S,S),S,S),S)(((a,S),S,S),S)

(((a,a),^,(T)),S)(((a,a),^,(S)),

 

S)

(a,(S,S))(a,(a,S))(a,(a,a))

((S,S,S),S)(((T),S,S),S)

(((a,a),S,S),S)

(((a,a),^,(a)),S)

(((a,a),^,(a)),a)

最右推导

:

S

 

S

(T)(T,S)(T,(T))(T,(T,S))(T,(T,a))(T,(S,a))(T,(a,a))

(S,(a,a))(a,(a,a))

(T,S)(T,a)(S,a)((T),a)((T,S),a)((T,(T)),a)((T,(S)),a)

((T,(a)),a)((T,S,(a)),a)((T,^,(a)),a)((S,^,(a)),a)(((T),^,(a)),a)

(((T,S),^,(a)),a)(((T,a),^,(a)),a)(((S,a),^,(a)),a)(((a,a),^,(a)),a)

(2)

(((a,a),^,(a)),a)

 

(((S,a),^,(a)),a)

(((T,a),^,(a)),a)

(((T,S),^,(a)),a)

(((T),^,(a)),a)

((S,^,(a)),a)

((T,^,(a)),a)

((T,S,(a)),a)

((T,(a)),a)

((T,(S)),a)

((T,(T)),a)

((T,S),a)

((T),a)

(S,a)

(T,S)

(T)

S

“移进-归约”过程:

步骤栈输入串动作

0

#

(((

a,a),^,(a)),a)#

预备

1

#(

((

a,a),^,(a)),a)#

2

#((

(a,a),^,(a)),a)#

3

#(((

a,a),^,(a)),a)#

4

#(((a

a),^,(a)),a)#

5

#(((S

a),^,(a)),a)#

6

#(((T

a),^,(a)),a)#

7

#(((T,

a),^,(a)),a)#

8

#(((T,a

),^,(a)),a)#

9

#(((T,S

),^,(a)),a)#

10

#(((T

),^,(a)),a)#

11

#(((T)

^,(a)),a)#

12

#((S

^,(a)),a)#

13

#((T

^,(a)),a)#

14

#((T,

^,(a)),a)#

15

#((T,^

(a)),a)#

16

#((T,S

(a)),a)#

17

#((T

(a)),a)#

18

#((T,

(a)),a)#

19

#((T,(

a)),a)#

20

#((T,(a

)),a)#

21

#((T,(S

)),a)#

22

#((T,(T

)),a)#

23

#((T,(T)

),a)#

24

#((T,S

),a)#

25

#((T

),a)#

 

26

#((T)

a)#

27

#(S

a)#

28

#(T

a)#

29

#(T,

a)#

30

#(T,a

)#

31

#(T,S

)#

32

#(T

)#

33

#(T)

#

34

#S

#

P133–3

(1)

FIRSTVT(S)={a,^,(}

FIRSTVT(T)={,,a,^,(}

LASTVT(S)={a,^,)}

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

(2)

a

^

a

>

>

^

>

>

<

<

<

=

<

>

>

<

<

<

>

>

G6是算符文法,并且是算符优先文法

(3)优先函数

 

a

^

f

4

4

2

4

4

g

5

5

5

2

3

 

f

f

f

f

f

a

^

 

g

g

g

g

g

a

^

(4)

输入字符串

动作

#

(a,(a,a))#

预备

#(

a,(a,a))#

#(a

(a,a))#

#(t

(a,a))#

 

#(t,

(a,a))#

#(t,

a,a))#

#(t,(a

a))#

#(t,(t

a))#

#(t,

(t,

a))#

#(t,

(t,a

))#

#(t,

(t,s

))#

#(t,(t

))#

#(t,

(t)

)#

#(t,s

)#

#(t

)#

#(t

#

#s

#

success

P134–5

(1)

0.

S

S

1.S

S

2.S

AS3.

S

AS

4.

S

AS5.

S

b

6.S

b

7.

A

SA

8.

A

SA9.

A

SA

10.

A

a

11.A

a

(2)

1

 

SA

S

7

8

9

 

a

0

10

11

 

A

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

当前位置:首页 > 经管营销 > 经济市场

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

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