《编译原理》期末复习资料完整版.docx

上传人:b****4 文档编号:11358296 上传时间:2023-05-31 格式:DOCX 页数:19 大小:295.16KB
下载 相关 举报
《编译原理》期末复习资料完整版.docx_第1页
第1页 / 共19页
《编译原理》期末复习资料完整版.docx_第2页
第2页 / 共19页
《编译原理》期末复习资料完整版.docx_第3页
第3页 / 共19页
《编译原理》期末复习资料完整版.docx_第4页
第4页 / 共19页
《编译原理》期末复习资料完整版.docx_第5页
第5页 / 共19页
《编译原理》期末复习资料完整版.docx_第6页
第6页 / 共19页
《编译原理》期末复习资料完整版.docx_第7页
第7页 / 共19页
《编译原理》期末复习资料完整版.docx_第8页
第8页 / 共19页
《编译原理》期末复习资料完整版.docx_第9页
第9页 / 共19页
《编译原理》期末复习资料完整版.docx_第10页
第10页 / 共19页
《编译原理》期末复习资料完整版.docx_第11页
第11页 / 共19页
《编译原理》期末复习资料完整版.docx_第12页
第12页 / 共19页
《编译原理》期末复习资料完整版.docx_第13页
第13页 / 共19页
《编译原理》期末复习资料完整版.docx_第14页
第14页 / 共19页
《编译原理》期末复习资料完整版.docx_第15页
第15页 / 共19页
《编译原理》期末复习资料完整版.docx_第16页
第16页 / 共19页
《编译原理》期末复习资料完整版.docx_第17页
第17页 / 共19页
《编译原理》期末复习资料完整版.docx_第18页
第18页 / 共19页
《编译原理》期末复习资料完整版.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《编译原理》期末复习资料完整版.docx

《《编译原理》期末复习资料完整版.docx》由会员分享,可在线阅读,更多相关《《编译原理》期末复习资料完整版.docx(19页珍藏版)》请在冰点文库上搜索。

《编译原理》期末复习资料完整版.docx

《编译原理》期末复习资料完整版

 

1.给出语言{anbnambm|n,m≥0}的一个上下文无关文法。

(6分)

解:

G[S]:

S—>AB

A—>aAb|ε

B—>aBb|ε

2.给出语言{1n0m1m0n|n,m≥0}的一个上下文无关文法。

解:

 G[S]:

S—>1S0|A          

A—>0A1|ε

3.P48第6题(5)、(6).画语法树

6、已知文法G:

 

<表达式>:

:

=<项>|<表达式>+<项> 

<项>:

:

=<因子>|<项>*<因子> 

<因子>:

:

=(<表达式>)|i  

(5)i+(i+i) (6)i+i*i 

解:

(5)语法树:

(6)语法树:

4.P48第13题 直接短语等

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

(3)求直接短语

解:

直接短语有:

a ε b

P102例题6.1及其分析.(后加画语法树)

例6.1设文法G[S]为:

(1)S—>aAcBe

(2)A—>b

(3)A—>Ab

(4)B—>d

对输入串abbcde#进行分析,检查该符号串是否是G[S]的句子。

解:

设一个先进后出的符号符,并把句子左括号“#”号放入栈底,其分析过程如下:

步骤

符号栈

输入符号串

动作

(1)

#

abbcde#

移进

(2)

#a

bbcde#

移进

(3)

#ab

bcde#

归约(A—>b)

(4)

#aA

bcde#

移进

(5)

#aAb

cde#

归约(A—>Ab)

(6)

#aA

cde#

移进

(7)

#aAc

de#

移进

(8)

#aAcd

e#

归约(B—>d)

(9)

#aAcB

e#

移进

(10)

#aAcBe

#

归约(S—>aAcBe)

(11)

#S

#

接受

语法树如下:

一、计算分析题(60%)

1、正规式→NFA→DFA→最简DFA

P72第1题

(1)、(4);

第一题1、构造下列正规式相应的DFA.

(1)1(0|1)*101 

解:

先构造NFA

用子集法将NFA确定化 

0

1

S

A

A

A

AB

AB

AC

AB

AC

A

ABZ

ABZ

AC

AB

除S,A外,重新命名其他状态,令AB为B、AC为C、ABZ为D,因为D含有Z(NFA的终态),所以D为终态,因此有:

0

1

S

A

A

A

B

B

C

B

C

A

D

D

C

B

得到DFA如下所示:

(4)b((ab)*|bb)*ab 

解:

先构造NFA

得到DFA如下所示:

P72第4题(a)

4、把下图确定化和最小化

解:

确定化:

用子集法将NFA确定化 

a

b

0

01

1

01

01

1

1

0

重新命名,以A、B、C代替{0}、{01}、{1},其中A为初态,A,B为终态,因此有:

a

b

A

B

C

B

B

C

C

A

最小化:

 

初始分划得终态组{A,B},非终态组{C} 

Π0:

{A,B},{C},对终态组进行审查,判断A和B是等价的,故这是最后的划分。

重新命名,以A、C代替{A,B}、{C},因此有:

a

b

A

A

C

C

A

即DFA最小化如下:

第7题

7、给文法G[S]:

 

S→aA|bQ 

A→aA|bB|b 

B→bD|aQ 

Q→aQ|bD|b 

D→bB|aA 

E→aB|bF 

F→bD|aE|b 

构造相应的最小的DFA。

解:

先构造NFA:

用子集法将NFA确定化:

a

b

S

A

Q

A

A

BZ

BZ

Q

D

B

Q

D

Q

Q

DZ

DZ

A

B

D

A

B

将S、A、BZ、B、Q、DZ、D重新命名,分别用0、1、2、3、4、5、6表示。

因为2、5中含有Z,所以它们为终态。

因此有:

a

b

0

1

4

1

1

2

2

4

6

3

4

6

4

4

5

5

1

3

6

1

3

初始分划得:

终态组{2,5},非终态组{0,1,3,46}

 Π0:

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

对{0,1,3,4,6}进行审查:

 {1,4}输入b到达{2,5},而{0,3,6}输入b到达{3,4,6},故得到新分划{1,4},{0,3,6} 

Π1:

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

对{0,3,6}进行审查:

 {0}经过b到达{2},{3,6}经过b到达{3,6},故得到新分划{0},{3,6}

Π3:

得到最后划分{0},{1,4},{2,5},{3,6}    

重新命名,以A,B,C,D分别代替{0},{1,4},{2,5},{3,6},其中A为始态,C为终态,可得到最小DFA如下:

 

2、自顶向下方法

(一)设文法G(E):

E→E+T|T

T→T*F|F

F→i|(E)

  

(1)判断是否为LL

(1)文法.

  

(2)构造文法的预测分析表.

解:

详见P93-96例题。

(1)由于文法中含有左递归,所以必须先消除左递归,使文法变为:

E→TE`

E`→+TE`|ε

T→FT`

T`→*FT`|ε

F→i|(E)

FIRST集合如下:

FIRST(E)={(,i}

FIRST(E`)={+,ε}

FIRST(T)={(,i}

FIRST(T`)={*,ε}

FIRST(F)={(,i}

FOLLOW集合如下:

FOLLOW(E)={),#}

FOLLOW(E`)={),#}

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

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

FOLLOW(F)={+,*,),#}

各产生式的SELECT集合如下:

SELECT(E→TE`)={(,i}

SELECT(E`→+TE`)={+}

SELECT(E`→|ε)={),#}

SELECT(T→FT`)={(,i}

SELECT(T`→*FT`)={*}

SELECT(T`→|ε)={+,),#}

SELECT(F→i)={i}

SELECT(F→(E))={(}

由上可知有相同左部产生式的SELECT集合的交集为空,故文法是LL

(1)文法。

(2)构造文法的预测分析表如下:

i

+

*

#

E

→TE`

→TE`

E`

→+TE`

→ε

→ε

T

→FT`

→FT`

T`

→ε

→*FT`

→ε

→ε

F

→i

→(E)

(二)P1016.(4)改写下面文法为LL

(1)文法,井对每个LL

(1)文法构造相应的预测分析表。

解:

3、自底向上方法

已知文法G(E):

[0]S'→E

[1]E→E+T[2]E→T

[3]T→T*F[4]T→F

[5]F→(E) [6]F→i

(1)证明该文法是SLR

(1)文法.

(2)若已给出下面的SLR

(1)分析表,试分析句子(i+(*i))#输入串出错的位置。

状态

ACTION

GOTO

i

+

*

#

E

T

F

0

S5

S4

1

2

3

1

S6

acc

2

r2

S7

r2

r2

3

r4

r4

r4

r4

4

S5

S4

8

2

3

5

r6

r6

r6

r6

6

S5

S4

9

3

7

S5

S4

10

8

S6

S11

9

r1

S7

r1

r1

10

r3

r3

r3

r3

11

r5

r5

r5

r5

3、解:

(1):

先分析LR(0)项目:

由上可见:

I1,I2,I9存在移进—归约冲突.分析FOLLOW集:

因为:

对I1FOLLOW(S’)={#}∩{+}=ф

对I2FOLLOW(E)={+,#,)}∩{*}=ф

对I9FOLLOW(E)={+,#,)}∩{*}=ф

所以是SLR

(1)文法。

(2):

STEP

S

X

(i+(*i)#

action

goto

1

0

#

(i+(*i)#

S4

2

04

#(

i+(*i)#

S5

3

045

#(i

+(*i)#

r6

3

4

043

#(F

+(*i)#

r4

2

5

042

#(T

+(*i)#

r2

8

6

048

#(E

+(*i)#

S6

7

0486

#(E+

(*i)#

S4

8

04864

#(E+(

*i)#

error

 

4、

(一)给出语句ifa+b>b+c*dthenwhilex*y>3dox:

=x-a*belse

whileb+c*d>10dob:

=b-(x*y+5)相应的三地址代码.

 

(1)

t1=a+b

(12)

goto(6)

(2)

t2=c*d

(13)

goto(23)

(3)

t3=b+t2

(14)

t7=c*d

(4)

ift1>t3goto(6)

(15)

t8=b+t7

(5)

goto(14)

(16)

ift8>10goto(18)

(6)

t4=x*y

(17)

goto(23)

(7)

ift4>3goto(9)

(18)

t9=x*y

(8)

goto(13)

(19)

t10=t9+5

(9)

t5=a*b

(20)

t11=b-t10

(10)

t6=x-t5

(21)

b=t11

(11)

x=t6

(22)

goto(14)

(23)

(二)While a>0∨b<0 do

    Begin

      X:

=X+1;

      ifa>0thena:

=a-1

          elseb:

=b+1

    End;

 翻译成四元式序列.(10分)

●解:

(1)(j>,a,0,5)

     

(2)(j,_,_,3)

     (3)(j<,b,0,5)

     (4)(j,_,_,15)

     (5)(+,x,1,T1)

     (6)(:

=,T1,_,x)

     (7)(j>,a,0,9)

     (8)(j,_,_,12)

     (9)(-,a,1,T2)

     (10)(:

=,T2,_,a)

     (11)(j,_,_,1)

     (12)(+,b,1,T3)

     (13)(:

=,T3,_,b)

     (14)(j,_,_,1)

     (15)

 

5、

(一)设有基本块(10分)

  T1:

=2

  T2:

=10∕T1

  T3:

=S-R

  T4:

=S+R

  A:

=T2*T4

  B:

=A

  T5:

=S+R

  T6:

=T3*T5

  B:

=T6

  

(1)画出DAG图;

  

(2)假设基本块出口时只有A,B还被引用,请写出优化后的四元序列。

5

(一)、解:

(1)DAG:

        

   (3分)

     

(2)优化后的四元式

       T3:

=S-R

       T4:

=S+R

       A:

=5*T4

       B:

=T3+T4            

(二)P255-257DAG图

例试构造以下基本块G的DAG

(1)T0:

=3.14

(2)T1:

=2*T0

(3)T2:

=R+r

(4)A:

=T1*T2

(5)B:

=A

(6)T3:

=2*T0

(7)T4:

=R+r

(8)T5:

=T3*T4 

(9)T6:

=R-r

(10)B:

=T5*T6

(11)ifB<=10goto

(1)

(1)画出DAG图;

(2)假设基本块出口时只有A,B还被引用,请写出优化后的四元序列。

解:

(1)DAG图如下:

(2)四元序列如下:

T2:

=R+r

T6:

=R-r

A:

=6.28*T2

B:

=A*T6

四、

●1.1

先给出NFA图:

画状态转换表:

I

0

1

A

B

C'

D'

E'

A

B

BC

BD

CBE

B

BD

B

BD

B

BC

BC

BCE

BC

得DFA如下图:

1.4

画状态转换表:

I

0

1

A

B

C

D

E

0

1

24

5

13

24

 

24

1

5

13

1

5

由NFA,得DFA如图:

●P72第4题(a)

画状态转换表:

I

Ia

Ib

A

B

C

0

01

1

01

01

0

1

1

得DFA如下图:

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2