第九次作业
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)文法。