zoukankan      html  css  js  c++  java
  • 消除左递归

    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

  • 相关阅读:
    例题6-8 Tree Uva548
    例题6-7 Trees on the level ,Uva122
    caffe Mac 安装
    Codeforces Round #467 (Div. 1) B. Sleepy Game
    Educational Codeforces Round37 E
    Educational Codeforces Round 36 (Rated for Div. 2) E. Physical Education Lessons
    Good Bye 2017 E. New Year and Entity Enumeration
    Good Bye 2017 D. New Year and Arbitrary Arrangement
    Codeforces Round #454 D. Seating of Students
    浙大紫金港两日游
  • 原文地址:https://www.cnblogs.com/SeBr7/p/11868706.html
Copyright © 2011-2022 走看看