zoukankan      html  css  js  c++  java
  • 理解文法和语法

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

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

    D={0,1, … ,9}

    说明下表示的含义:

    LUD  全部字母和数字的集合

    LD     由一个字母后跟一个数字组成的所有符号串的集合

    L4     由4个字母组成的所有符号串的集合

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

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

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

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

    产生式有:Z -> aZb ;  Z -> ab

    因此有: Z => ab ; Z => aZb => aaZbb => a^3b^3

    重复产生之后会有:  Z => aZb => aaZabb => a^nb^n

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

    有文法G=(Vn,Vt,P,S)。

    其中,Vn=(I,L,D),Vt={a,b,c.,..,x,y,z,0,1,...9}

    P={ I -> L

      I -> IL

      I -> ID

      L -> a

      L -> b

      ...

      L -> z

      D -> 0

      D -> 1

      ...

      D -> 9 }

    S= I

    所以

    I-> L | IL | ID

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

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

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

    G(E):

    E=> E + T | T

    T=>T * F | F

    F=>(E)| i

    • i*i+i
    • i+i*i
    • i+(i+i)

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

    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

    ②最右推导:

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

    ---------------------------------------------------------------------------------------------------------------------------------------------

    i+i*i 解答:

    ①最左推导:

    E => E + T => T + T => F + T => i + T => i + T * F => i + F * F => i + i * F => 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

    ----------------------------------------------------------------------------------------------------------------------------------------------

    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)

    ②最右推导:

    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)

  • 相关阅读:
    vmware centos 共赏目录不显示
    小程序上拉刷新
    chrome json接口数据 插件
    滚动条滚动事件
    smarty循环item命名规范
    css实现梯形样式(含有border)
    设置行高并不能垂直居中
    图片翻转交互效果
    smarty文章字符截取
    css动画 transition
  • 原文地址:https://www.cnblogs.com/q1uj1e/p/11505363.html
Copyright © 2011-2022 走看看