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

  • 相关阅读:
    Jmeter中的几个重要测试指标释义
    接口测试考虑
    树Hash学习笔记
    kali linux主题美化
    Kali Linux 终端字体配色
    解决github无法打开
    Python requests数据的content和text的区别
    Python+adb操作移动端自动化测试
    linux后台运行python程序
    洛谷P2791 幼儿园篮球题 另解
  • 原文地址:https://www.cnblogs.com/dengweijiang/p/11862845.html
Copyright © 2011-2022 走看看