理解文法和语法

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 => aaZbb => a^3b^3

重复产生之后会有:  Z => aZb => aaZabb => a^nb^n

 

 

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

有文法G=(Vn,Vt,P,S)。

其中,Vn=(I,L,D),Vt={a,b,c.,..,x,y,z,0,1,...9}

P={ I -> L

  I -> IL

  I -> ID

  L -> a

  L -> b

  ...

  L -> z

  D -> 0

  D -> 1

  ...

  D -> 9 }

S= I

所以

 

I-> L | IL | ID

L-> a | b | c | ... | z

D-> 1 | 2 | 3 | ... | 9

 

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

G(E):

E=> E + T | T

T=>T * F | F

F=>(E)| i

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

 注意观察最左和最右推导过程的不同。

 

i*i+i 解答:

①最左推导:

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

---------------------------------------------------------------------------------------------------------------------------------------------

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

----------------------------------------------------------------------------------------------------------------------------------------------

i+(i+i) 解答:

①最左推导:

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)

posted on 2019-09-12 18:05  He11o  阅读(431)  评论(0编辑  收藏  举报

导航