DFA最小化,语法分析初步
1.将DFA最小化:教材P65 第9题
答:DFA化简如下:
I |
{1,2,3,4,5} |
{6,7} |
|
{3,4}b->{6,7} {1,2}b->{2} {5}b-> {1,2,3,4,5}可区别,划分 |
{6}b->{6}, {7}b->{6} 不可区别,等价 |
II |
{1,2}{3,4}{5} |
{6,7} |
|
{3}c->{3}, {4}c->{3} {3}d={5}, {4}d->{5} {3,4}不可区别,等价 |
|
III |
{1,2}{3,4}{5} |
{6,7} |
|
{1}a={3,4}, {2}a={3,4} {1,2}不可区别,等价 |
状态转换图如下:
识别语言:b*ac*(da)*bb*
2.构造以下文法相应的最小的DFA
S→ 0A|1B
A→ 1S|1
B→0S|0
答:由上可得正规式如下:
S->0A | 1B
->0(1S | 1) | 1(0S | 0)
->01S | 01 | 10S | 10
->(01 | 10)S | (01 | 10)
->(01 | 10)*(01 | 10)
由正规式可得NFA如下:
由NFA可得DFA状态转换矩阵如下:
|
0 |
1 |
|
A |
{Xad} |
{be} |
{cf} |
B |
{be} |
|
{adY} |
C |
{cf} |
{adY} |
|
D |
{adY} |
{be} |
{cf} |
DFA状态转换图如下:
最小化DFA如下:
I |
{A,B,C} |
{D} |
|
{A}0->{B} {B}0-> {C}0->{D} {A,B,C}可区别,划分 |
不可区别 |
II |
{A}{B}{C} |
{D} |
|
不可区别 |
状态转换图如下:
3.给定如下文法 G[S]:
S →AB
A → aA | ɛ
B → b | bB
给出句子aaab 的一个自顶向下语法分析过程,并说明回溯产生的原因是什么?
答:句子aaab 的一个自顶向下语法分析过程如下:
S=>AB
=>aAB
=>aaAB
=>aaaAB
=>aaaεB
=>aaab
回溯产生的原因是文法的产生式有公共左因子。
4.P100 练习4,反复提取公共左因子,对文法进行改写。
答:对文法改写如下:
S->C$
C->bA | aB
A->aD | bAA
B->bD | aBB
D-> ɛ | C