博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

作业2 文法和语言

Posted on 2019-09-11 23:35  马淳丰  阅读(225)  评论(0编辑  收藏  举报

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

答:文法G(Z)有两条产生式:(1) Z→aZb 和 (2) Z→ab ,通过对第一个产生式使用n-1次,然后使用第二个产生式一次,得到:

Z => aZb => aaZbb => ... => an-1Zbn-1 =>anbn

因此,文法G(Z):Z->aZb|ab定义的语言是 L(G[Z])={anbn|n>=1}

2.写出教材22页例2.2中标识符的文法四元组形式。

答:G = (VN, VT, P, S)。

V = {I(标识符), L(字母), D(数字)},V = {a, b, c, ... , x, y, z, 0, 1, 2, ... , 9}

P = {<I>→<L>

  <I>→<I><L>

  <I>→<I><D>

  <L>→a

  <L>→b

  .

  .

  .

  <L>→z

  <D>→0

  <D>→1

  

  .

 

  .

 

  .

 

  <D>→9}

S = <I>

3.写出下列表达式的最左推导、最右推导和语法树。

G(E):

E=> E + T | T

T=>T * F | F

F=>(E)| i

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

 注意观察最左和最右推导过程的不同,以及语法树的异同。