第九次作业 DFA最小化,语法分析初步
1.将DFA最小化:教材P65 第9题
解:
DFA化简:
I |
{1,2,3,4,5} |
{6,7} |
|
{1,2,5}a->{2,3,4,5} {3,4}a -> {1,2,3,4,5}可区别,划分 |
|
II |
{1,2,5}{3,4} |
{6,7} |
|
{1,2}b->{1,2,5} {5}b-> {1,2,5}可区别,划分 |
{ |
III |
{1,2}{5}{3,4} |
{6,7} |
|
{3}b->{6,7},{3}c->{3,4},{3}d->{5} {4}b->{6,7},{4}c->{3,4},{4}d->{5} {3,4}不可区别,等价 |
6}b->{6,7} {7}b->{6,7} {6,7}不可区别,等价 |
IIII |
{1,2}{5}{3,4} |
{6,7} |
|
{1}a->{3,4},{1}b->{1,2} {2}a->{3,4},{2}b->{1,2} {1,2}不可区别,等价 |
所以,最小化DFA为:
所识别的语言:b*ac*(da)*bb*
2.构造以下文法相应的最小的DFA
S→ 0A|1B
A→ 1S|1
B→0S|0
解:
S->01S|01|10S|10
->01S+01+10S+10
->(01+10)S+01+10
->(01|10)S|(01|10)
->(01|10)*(01|10)
NFA:
NFA->DFA状态转换图:
|
0 |
1 |
|
A |
ε{A}={ABC} |
{EG} |
{FH} |
B |
{EG} |
|
ε{BD}={BCD} |
C |
{FH} |
ε{BD}={BCD} |
|
D |
{BCD} |
{EG} |
{FH} |
DFA:
DFA化简:
I |
{A,B,C} |
{D} |
|
{A}1->{ABC} {B}1->{D} {C}1-> {A,B,C}可区别,划分 |
|
II |
{A},{B},{C} |
{D} |
故最小化DFA:
3.给定如下文法 G[S]:
S →AB
A → aA | ɛ
B → b | bB
给出句子aaab 的一个自顶向下语法分析过程,并说明回溯产生的原因是什么?
解:
语法分析:S -> AB -> aAB -> aaAB ->aaaAB -> aaaɛB -> aaaB -> aaabB -> aaabb
-> aaaB -> aaab
回溯产生的原因:文法B → b | bB中有公共左因子,导致语法的不确定性。
4.P100 练习4,反复提取公共左因子。
解:
S -> C$
C -> bA | aB
A -> aC' | bAA
B -> bC' | aBB
C' -> ɛ | C