第九次作业

1.将DFA最小化:教材P65 第9题

 

2.构造以下文法相应的最小的DFA

S→ 0A|1B

A→ 1S|1

B→0S|0

 

3.自上而下语法分析,回溯产生的原因是什么?

 

4.P100 练习4,反复提取公共左因子。

 

1、

{12345}∈A

{67}∈B

{125}a->A

 

{12}b->B

{67}b->B

{34}c->A

 

{34}d->A   

 

{12}{34}{5}

{67}

 

 

 

 

 

 2、

A=1S+1

B=0S+0

S=0(1S+1)+1(0S+0)

=01S+01+10S+10

=(01+10)*+01+10

 

      (01+10)*+01+10

X--------------------------------------àY

 

 

 

0

1

0

X

A

B

1

A

 

Y

2

B

Y

 

3

Y

A

B

 

 

 

{03}∈A

{12}∈B

{03}0->B

{1}1->B

{03}1->B

{2}0->B

3、回溯产生的主要原因是文法的产生式有问题。

   例如,当自上而下分析时,左右叶节点的有相同的左因子。这是就会产生错误,所以需要回溯。

4、因为SELECT(A->a)∩SELECT(A->aC)≠∅,根据LL(1)文法的判定条件:

(1)文法不含左递归

(2)对于文法U的任意两个不同的规则有:

    Select(U->a)∩Select(U->β)=∅一个文法若满足以上条件,称该文法G               为LL(1)文法。

    得出改文法不是LL(1)文法。

    该文法含公共因子,消除后的文法为:

    S->C$

    C->bA|aB

    A->aA'|bAA

    A'->C|ε

    B->bB'|aBB

    B'->C|ε

    因为SELECT(C->bA)∩SELECT(C->aB)=∅

    SELECT(A->aA)∩SELECT(A->aBB)=≠∅

    SELECT(A‘’->C)∩SELECT(A‘’->ε)=(FIRST(C))-{ε}∩FOLLOW(A')≠∅

    因此消除公共因子后得到文法也不是LL(1)文法。

posted @ 2019-11-07 19:44  蔡云桓  阅读(159)  评论(0编辑  收藏  举报