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

理解文法和语文

时间:2019-09-12 23:22:09      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:hellip   运算   符号   集合运算   列表   family   aaa   语言   包括   

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->aZb->aaZbb->aaaZbbb->aaaaZbbbb->a...Zb...->a...b...

  由n个a后跟n个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,...,9}

  P={    <I>-><L>

      <I>-><I><L>

      <I>-><I><D>

        <L>->a

        <L>->b

        ...

       <L>->z

       <D>->0

       <D>->1

        ...

       <D>->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最左推导

   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

2最左推导

   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

3最左推导

   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)

 

理解文法和语文

标签:hellip   运算   符号   集合运算   列表   family   aaa   语言   包括   

原文地址:https://www.cnblogs.com/MRJ1/p/11515319.html

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