DFA最小化,语法分析初步

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

 

 L(M) = ac*(da)*bb*

 

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

S→ 0A|1B

A→ 1S|1

B→0S|0

 

正规式 :  S→0A | 1B = 0 ( S1 + 1 )  + 1(S0 + 0)= 01S + 01 + 10S + 10 =  (01 + 10)S + (01 + 10) →aS |a

        即a =(01 + 10) .而该形式产生 a*a  ,  既有 Z = (01 +10)*(01 + 10). 

自动机:

 确定性自动机:

 

 

01

10

X

ε{X}={AB}

ε{AB}={ABC}

ε{AB}={ABC}

A

ε{ABC}

ε{ABC}={ABC}

ε{ABC}={ABC}

永动机最小化:

{X}

{A}

{X}10→{A}

{X}01→{A}

{A}10→{A}

{A}01→{A}

 

所以上图中的永动机为最小化的永动机。

 

 

3.给定如下文法 G[S]:

AB

→ aA | ɛ 

→ b | bB

给出句子aaab 的一个自顶向下语法分析过程,并说明回溯产生的原因是什么?

 

语法分析:

 AB→aAB→aaAB→aaaABaaaɛBaaaɛbBaaaɛbb

              aaaɛBaaaɛbaaab

回溯产生的原因是:→ b | bB 语法中存在公共的左因子导致了语法的不确定性。

解决方法:反复提取公共左因子;把   → b | bB   拆成    → bB'    ;        B' →   ɛ  | B  

 

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

S→C$

C→bA|aB

A→a|aC|bAA

B→b|bC|aBB

 

S→C$

C→bA|aB

A→aC' | bAA

B→bC' |aBB  

C’ →   ɛ  | C

posted @ 2019-11-06 11:35  皎月星辰  阅读(394)  评论(0编辑  收藏  举报