理解文法和语文

Posted zhif97

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=>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

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

理解文法和语文

2.理解文法和语文

2.理解文法和语文

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

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

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