理解文法和语文

Posted mrj1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解文法和语文相关的知识,希望对你有一定的参考价值。

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)

 

以上是关于理解文法和语文的主要内容,如果未能解决你的问题,请参考以下文章

理解文法和语文

2.理解文法和语文

2.理解文法和语文

4.文法和语文总结与梳理

4.文法和语文总结与梳理

编译原理之理解文法和语言