zoukankan      html  css  js  c++  java
  • 正规式、正规文法与自动机


    1.正规式转换到正规文法

    对任意正规式R选择一个非终结符Z生成规则Z→R

    1.对形如A→ab的规则,转换成A→aB,B→b

    2.将形如A→a|b的规则,转换成A→a,A→b(A→a|b)

    3.将形如A→a*b的规则,转换成A→aA,A→b

       将形如A→ba*的规则,转换成A→Aa,A→b

    不断利用上述规则进行转换,直到每条规则最多含有一个终结符为止.

    1(0|1)*101

    S->A1

    A->B0

    B->C1

    C->1(0|1)*

    C->C(0|1) | 1

     ------------------------------------------------------------------------------

    (a|b)*(aa|bb)(a|b)*

    S->(a|b)S -> aS | bS

    S->(aa|bb)(a|b)*->S(a|b) ->Sa | Sb

    因为S->aa|bb

    所以S->aB;B->a

      S->bA;A->b

    最后S->aS|bS|Sa|Sb|aB|bA

      B->a

      A->b

     ------------------------------------------------------------------------------

    ((0|1)*|(11))*

    S->((0|1)*|(11))S|ε

    S->ε

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

    S->aS;S->bS

    a->(0|1)*                              b->11

    a->(0|1)a|ε                           b->1C

    a->0a|1a|ε         C->1

    最后:S->aS|bS|ε

       a->0a|1a|ε

       b->1C

       C->1

     ------------------------------------------------------------------------------

    (0|110)

    S->0

    因为:S->110

    所以:S->A0

       A->B1

       B->1

    最后:S->0 | A0

       A->B1

       B->1

    ------------------------------------------------------------------------------

    2. 自动机M=({q0,q1,q2,q3},{0,1},f,q0,{q3})

    其中f:

    (q0,0)=q1

    (q1,0)=q2

    (q2,0)=q3

    (q0,1)=q0

    (q1,1)=q0

    (q2,1)=q0

    (q3,0)=q3

    (q3,1)=q3

    画现状态转换矩阵和状态转换图,识别的是什么语言。

    现状态转换矩阵:

     

     状态转换图:

    语言:

     

    3.由正规式R 构造 自动机NFA 

    (a|b)*abb

    (a|b)*(aa|bb)(a|b)*

    1(1010*|1(010)*1)*0

    (1)

    (2)

    (3)

  • 相关阅读:
    关于WPF中Popup控件的小记
    javascript调用外部wpf的方法
    html+ashx 缓存问题
    『Linux学习笔记』8. 权限
    LeetCode 2.两数相加
    C# 标签打印示例 1
    检索COM 类工厂中CLSID 为 {0002450000000000C000000000000046}的组件时失败
    C# 文件操作(一)
    Nginx 事件基本处理流程分析
    Spring学习笔记1:概论
  • 原文地址:https://www.cnblogs.com/q1uj1e/p/11725399.html
Copyright © 2011-2022 走看看