编译原理之DFA最小化,语法分析初步
1.将DFA最小化:
状态转换图:
识别语言:b*ac*(da)*bb*
2.构造以下文法相应的最小的DFA
S→ 0A|1B
A→ 1S|1
B→0S|0
(1)正规式:
S -> 0(1S+1)+1(0S+0)
->01S+01+10S+10
->(01+10)S+01+10
->(01|10)*(01|10)
(2)NAF
(3)DFA:
转换矩阵:
状态图:
(4)最小化DFA:
状态图
3.给定如下文法 G[S]:
S →AB
A → aA | ɛ
B → b | bB
给出句子aaab 的一个自顶向下语法分析过程,并说明回溯产生的原因是什么?
句子aaab 的一个自顶向下语法分析过程如下:
S=>AB
=>aAB
=>aaAB
=>aaaAB
=>aaaεB
=>aaab
回溯产生的原因:文法的产生式有公共左因子。
4.反复提取公共左因子,对文法进行改写。
S->C$
C->bA | aB
A->a | aC | bAA
B->b | bC | aBB
改写如下:
S->C$
C->bA | aB
A->aD | bAA
B->bD | aBB
D-> ɛ | C