编译原理之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

  

猜你喜欢

转载自www.cnblogs.com/Rakers1024/p/11820069.html