zoukankan      html  css  js  c++  java
  • 第二次作业 理解文法和语文

    1.理解符号串与集合运算。

    L={A,B, … ,Z,a,b, … ,z}

    D={0,1, … ,9}

    说明下表示的含义:

    LUD: 部的字母和数字的集合

    LD :由字母后面跟数字组成的字符串的集合

    L4:由四个字母组成的符号串的集合

    L*由所有字母组成的符号串的集合

    D+ 由一个或若干个数字组成的所有符号串集合

    L(LUD)* 以字母开头,后跟字母、数字组成的所以符合串的集合

    2.文法G(Z):Z->aZb|ab定义的是什么样的语言?

      Z->ab

    Z->aZb

    Z->aZb->aaZbb->aaabbb

    Z->aaZbb->aaaZbbb->aaaabbbb

    ...

    由若干个a后跟若干个b组成的所有符号串集合,且a的个数等于b的个数。

    3.写出教材22页例2.2中标识符的文法四元组形式(VN,NT,P,S)。

    I为标识符,L为字母,D为数字

    VN {I,L,D},VT{a,b,c,...x,y,z,0,1,2,...9}

    P={

    I-> L| IL |ID

    L->a|b|c|d|...|z

    D->0|1|2|3|...|9

    }

     S= I

    4.写出下列表达式的最左推导、最右推导。

    G(E):

    E=> E + T | T

    T=>T * F | F

    F=>(E)| i

    · i*i+i

    · i+i*i

    · i+(i+i)

     注意观察最左和最右推导过程的不同。

    (1)i*i+i最左推导:

    E=>E+T=>T+T=>T*F+T=>F*F+T=>i*F+T=>i*i+T=>i*i+F=>i*i+i

    i*i+i最右推导:

    E=>E+T=>E+F=>E+i=>T+i=>T*F+i=>T*i+i=>F*i+i=>i*i+i

    (2)i+i*i最左推导:

    E=>E+T=>T+T=>F+T=>i+T=>i+T*F=>i+F*F=>i+i*F=>i+i*i

    i+i*i最右推导:

    E=>E+T=>E+T*F=>E+T*i=>E+F*i=>E+i*i=>T+i*i=>F+i*i=>i+i*i

    (3)i+(i+i)最左推导:

    E=>E+T=>T+T=>F+T=>i+T=>i+F=>i+(E)=>i+(E+T)=>i+(T+T)=>i+(F+T)=>i+(i+T)=>i+(i+F)=>i+(i+i)

    i+(i+i)最右推导:

    E=>E+T=>E+F=>E+(E)=>E+(E+T)=>E+(E+F)=>E+(E+i)=>E+(T+i)=>E+(F+i)=>E+(i+i)=>T+(i+i)=>F+(i+i)=>i+(i+i)

  • 相关阅读:
    P1030 求先序排列 P1305 新二叉树
    spfa
    Clairewd’s message ekmp
    Cyclic Nacklace hdu3746 kmp 最小循环节
    P1233 木棍加工 dp LIS
    P1052 过河 线性dp 路径压缩
    Best Reward 拓展kmp
    Period kmp
    Substrings kmp
    Count the string kmp
  • 原文地址:https://www.cnblogs.com/cndl/p/11505869.html
Copyright © 2011-2022 走看看