zoukankan      html  css  js  c++  java
  • 06 正规文法与正规式

    1.分别写出描述以下语言的正规文法和正规式:

    L1={abna|n≥0}

    正规文法:L1 -> AB   A ->aBa    B -> bB|ε

    正规式: ab*a

    L2={ambn |n≥1,m ≥1}

    正规文法:L2 -> AB  A -> aA|a   B ->bB|b

    正规式:aa*bb*

    L3={(ab)n|n≥1}

    正规文法:L3 -> A   A -> aAb|ab

    正规式:ab(ab)*

     2.将以下正规文法转换到正规式

    Z→0A
    A→0A|0B
    B→1A|ε

    转换可得:①Z=0A ②A=0A+0B ③B=1A+ε

    将③代入②可得:A=0A+0(1A+ε)

              =0A+01A+0

              =(0+01)A+0

    ∴ A=(0|01)*0

    将②代入①可得:Z=0(0+01)*0

    ∴ Z=0(0|01)*0

    Z→U0|V1
    U→Z1|1
    V→Z0|0

    转换可得:①Z=U0+V1 ②U=Z1+1 ③V=Z0+0

    将②③代入①可得: Z=(Z1+1)0+(Z0+0)1

                =Z10+10+Z01+01

                =(10+01)Z+10+01

    ∴ Z=(10|01)*(10|01)   

    S→aA
    A→bA|aB|b
    B→aA

    转换可得:①S=aA ②A=bA+aB+b ③B=aA

    将③代入②可得:A=bA+a(aA)+b

              =bA+aaA+b

              =(aa+b)A+b

    ∴ A=(aa|b)*b

    将上式代入①可得:

    S = a(aa|b)*b

    I→l|Il|Id

    转换可得:I=l+Il+Id

         =I(l+d)+l

           =(l+d)*+l

    ∴ I=(l+d)*l 

  • 相关阅读:
    OAuth 2.0理论
    mvvm
    js中使用new所做的事情
    使用vue实现图片上传插件
    控制元素滚动位置
    float属性
    确定节点直接的关系
    react 开发中的问题简记
    深复制浅复制
    HTML和CSS实现常见的布局
  • 原文地址:https://www.cnblogs.com/HvYan/p/11676114.html
Copyright © 2011-2022 走看看