zoukankan      html  css  js  c++  java
  • 编译原理之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

      

  • 相关阅读:
    作业3月30号
    21、,模块与包的使用
    作业3月26号
    20、面向函数与匿名函数及模块
    作业3月25号
    19、迭代器及函数的递归调用
    作业3月24号
    06-函数
    3.17---购物车练习
    3.15---文件处理练习2
  • 原文地址:https://www.cnblogs.com/Rakers1024/p/11820069.html
Copyright © 2011-2022 走看看