• 消除左递归


    1.将以下文法消除左递归,分析符号串 i*i+i 。

       并分别求FIRST集、FOLLOW集,和SELECT集

         E -> E+T | T

         T -> T*F | F

         F -> (E) | i

    消除左递归:

      E→TE'

      E'→+TE'|ε

      T→FT'

      T'→*FT'|ε

      F→(E)|i

     FIRST集:

      FIRST(TE')={T}

      FIRST(+TE')={+}

      FIRST(ε)={ε}

      FIRST(FT')={F}

      FIRST(*FT')={*}

      FIRST((E))={(}

      FIRST(i)={i}

     FOLLOW集:

      FOLLOW(E)={)}

      FOLLOW(E')={#}

      FOLLOW(T)={E'}

      FOLLOW(T')={#}

      FOLLOW(F)={#}

     SELECT集:

      SELECT(E→TE')=FIRST(TE')={T}

      SELECT(E'→+TE')=FIRST(+TE')={+}

      SELECT(E'→ε)=(FIRST(ε)-{ε})∪FOLLOW(E')={)}

      SELECT(T→FT')=FIRST(FT')={F}

      SELECT(T'→*FT')=FIRST(*FT')={*}

      SELECT(T'→ε)=(FIRST(ε)-{ε})∪FOLLOW(T')={#}

      SELECT(F→(E))=FIRST((E))={(}

      SELECT(F→i)=FIRST(i)={i}

    2.P101练习7(2)(3)文法改写,并分别求FIRST集、FOLLOW集,和SELECT集

      (2).

      A-->aA'

      A'-->ABe | ε

      B-->bB' | d

      B'-->*b | ε

      FIRST集:

      FIRST(aA')={a}

      FIRST(ABe)={a | A-->a}

      FIRST(ε)={ε}

      FIRST(bB')={b}

      FIRST(d)={d}

      FIRST(*b)={*}

      

      FOLLOW集:

      FOLLOW(A)=FIRST(B)={b}

      FOLLOW(A')={#}

      FOLLOW(B)={e}

      FOLLOW(B')={#}

      SELECT集:

      SELECT(A-->aA')=FIRST(aA')={a}

      SELECT(A'-->ABe)=FIRST(ABe)={a | A-->a}

      SELECT(A'-->ε)=FOLLOW(A')={#}

      SELECT(B-->bB' )=FIRST(bB')={b}

      SELECT(B-->d)=FIRST(d)={d}

      SELECT(B'-->*b)=FIRST(*b)={*}

      SELECT(B'-->ε)=FOLLOW(B')={#}

    (3).

    课堂练习:

    求以下文法的FIRST集、FOLLOW集和SELECT集。

    S->Ap
    A->a |ε
    A->cA

    A->aA

    S->Ap
    S->Bq
    A->a
    A->cA
    B->b
    B->dB

  • 相关阅读:
    使用nginx部署Yii 2.0yii-advanced-app-2.0.6
    yii-basic-app-2.0.5/basic/config/web.php
    PS显示图像大小快捷键
    说说c, c++ 和 go
    十分钟搭建自己的私有NuGet服务器-BaGet(转)
    Redis面试总结&史上最全Redis面试题及答案(转)
    Kubernetes之helm部署使用(转)
    Kubernetes RBAC 详解(转)
    Kubernetes 集群安全机制详解(转)
    Repository 返回 IQueryable?还是 IEnumerable?(转)
  • 原文地址:https://www.cnblogs.com/SeBr7/p/11868706.html
Copyright © 2020-2023  润新知