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

     3型文法也叫作正规文法,它对应于有限状态自动机,它是在2型文法的基础上满足:A->a|aB(右线性)或A->a|Ba(左线性)。如果有A->a,A->aB,B->a,B->cB则符合3型文法的要求。但是A->ab,A->aB,B->a,B->cB或A->a,A->Ba,B->a,B->cB则不符合3型文法的要求。也就是说,不能够推导出两个终结符,而且左线性和右线性只能使用一种,不能够同时出现。

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

    (1)L1={abna|n≥0}。

    (2)L2={ambn|n≥1,m ≥1}

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

     答:(1) S → aA

            A → bA | a

         L1 = ab*a

       (2)S → aA

          A → aA | bB | b

          B → bB | b

         L2 = a*b*

       (3)S → aA

           A → bB

          B → aA | ε

         L3 = (ab)*

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

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

     答:Z = 0A

      A = 0A + 0B

      B = 1A + ε

      A = 0A + 0(1A + ε) = 0A + 01A + 0 

      A = aA | b

      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 + V1

      Z = (Z1+1)0 +(Z0+0)1

      Z = Z10 + 10 +Z01 + 01

      Z = Z(10+01)+10+01

      Z = (10+01)*1001

      Z = (10 | 01)*1001

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

    答:S = aA

      A = bA + aB + b

      B = aA

      A = bA + a(aA) +b  = (b + aa)A +b

      S = (b | aa)*b

    I→l|Il|Id

    答: I = l + Il + Id

       I = l + I(l +d)

       I = l(l | d)*

  • 相关阅读:
    (一)js概述
    (八)js函数二
    (七)js函数一
    (十)js获取日期
    Java 定时器 Timer 的使用.
    多线程编程学习四(Lock 的使用)
    多线程编程学习三(线程间通信).
    wait/notify 实现多线程交叉备份
    多线程编程学习二(对象及变量的并发访问).
    浅析多线程的对象锁和Class锁
  • 原文地址:https://www.cnblogs.com/raicho/p/11684484.html
Copyright © 2011-2022 走看看