作业二:理解文法和语文

1.理解符号串与集合运算。

L={A,B, … ,Z,a,b, … ,z}

D={0,1, … ,9}

说明下表示的含义:

LUD

LD

L4

L*

D+

L(LUD)*

答:LUD:即为L集合与D集合的并集合,即L={A,B, … ,Z,a,b, … ,z,0,1, … ,9}

    LD : {xy | x∈L且y∈D}

    L4: L集合的4位组合即{AAAA, AAAB, ..., zzzz}

    L*: 集合L集合的闭包

    D+: 表示D集合的正闭包

    L(LUD)* :L并D的正闭包与L的乘积,即{xy | x∈L且y∈(LUD)*}

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

答:由Z->aZb|ab可得Z->aZb->aaZbb->aaabbb

所以:L(G) = {anbn | n > 1}

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

I->

L->

D->

答:

I-> L|IL|ID

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

D-> 0|1|2|...|8|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*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 + 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 + (E) => 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 13:15  ztr啊仁  阅读(125)  评论(0编辑  收藏  举报

导航