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

      

  • 相关阅读:
    JS中null与undefined的区别
    <div> <p> <span>的用法和区别
    <img>的title和Alt有什么区别?
    null undefined NaN
    JavaScript中判断为整数的多种方式
    将博客搬至CSDN
    flex
    webpack插件url-loader使用规范
    Cordova 项目 加载不出XML文件
    pandas读取xlsx
  • 原文地址:https://www.cnblogs.com/Rakers1024/p/11820069.html
Copyright © 2011-2022 走看看