zoukankan      html  css  js  c++  java
  • DFA最小化,语法分析初步

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

    答:DFA化简如下:

    I

    {1,2,3,4,5}

    {6,7}

     

    {3,4}b->{6,7}

    {1,2}b->{2}

    {5}b->

    {1,2,3,4,5}可区别,划分

    {6}b->{6}, {7}b->{6}

    不可区别,等价

    II

    {1,2}{3,4}{5}

    {6,7}

    {3}c->{3}, {4}c->{3}

    {3}d={5}, {4}d->{5}

    {3,4}不可区别,等价

    III

    {1,2}{3,4}{5}

    {6,7}

    {1}a={3,4}, {2}a={3,4}

    {1,2}不可区别,等价

     

      状态转换图如下:

      

       识别语言:b*ac*(da)*bb*

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

    S→ 0A|1B

    A→ 1S|1

    B→0S|0

    答:由上可得正规式如下:

      S->0A | 1B

        ->0(1S | 1) | 1(0S | 0)

        ->01S | 01 | 10S | 10

        ->(01 | 10)S | (01 | 10)

        ->(01 | 10)*(01 | 10)

      由正规式可得NFA如下:

      

      由NFA可得DFA状态转换矩阵如下:

     

     

    0

    1

    A

    {Xad}

    {be}

    {cf}

    B

    {be}

     

    {adY}

    C

    {cf}

    {adY}

     

    D

    {adY}

    {be}

    {cf}

      DFA状态转换图如下:

      

        最小化DFA如下:

      

    I

    {A,B,C}

    {D}

     

    {A}0->{B}

    {B}0->

    {C}0->{D}

    {A,B,C}可区别,划分

    不可区别

    II

    {A}{B}{C}

    {D}

    不可区别

     

      状态转换图如下:

      

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

    AB

    → aA | ɛ 

    → b | bB

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

    答:句子aaab 的一个自顶向下语法分析过程如下:

      S=>AB

        =>aAB

        =>aaAB

        =>aaaAB

        =>aaaεB

        =>aaab

      回溯产生的原因是文法的产生式有公共左因子。

    4.P100 练习4,反复提取公共左因子,对文法进行改写。

    答:对文法改写如下:

      S->C$

      C->bA | aB

      A->aD | bAA

      B->bD | aBB

      D-> ɛ | C

  • 相关阅读:
    如何计算时间复杂度
    注意线程
    java中一个类要当作线程来使用有两种方法
    压缩和解压
    init [0123456]
    linux文件目录
    为什么使用combiner?【Hadoop】
    JAVA标识符
    关键字:java
    转 java 中int String类型转换
  • 原文地址:https://www.cnblogs.com/Gidupar/p/11822346.html
Copyright © 2011-2022 走看看