編譯原理之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

 

  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章