码迷,mamicode.com
首页 > 其他好文 > 详细

理解文法和语文

时间:2019-09-11 21:28:30      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:注意   一个   说明   表达式   产生   理解   含义   个数   形式   

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=>a²b²

  重复使用产生式:Z->aZb    >>得 :                 Z=>aZb=>a²Zb²...=>a?﹣¹Zb?﹣¹=>a?b?

  所以语言为L(G[Z])={a?b?|n≥1}

 

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

解析:

  有文法 G=(VN,VT,P,S),设L为标识符,D为字母,H为数字

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

         P= {<L>-><D>

       <L>-><L><D>

       <L>-><L><H>

            {<D>-><a>}

            {<D>-><b>}

       ┊

            {<D>-><z>}

            {<H>-><0>}

            {<H>-><1>}

       ┊

          {<H>-><9>}

     S=<L>

 

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

G(E):

E=> E + T | T

T=>T * F | F

F=>(E)| i

  • i*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

理解文法和语文

标签:注意   一个   说明   表达式   产生   理解   含义   个数   形式   

原文地址:https://www.cnblogs.com/zhif97/p/11505377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!