第二次作业 理解文法和语文

1.理解符号串与集合运算
LUD:由L与D组成的集合,{A,B...Z,a,b,..z,0,1,...,9}
LD:由x属于L和y属于D的所有字符串组成集合,{A0,A1,...B0,B1,...,a0,a1,...z9}
L4:属于L集合里面随机四位元素的连接组成的集合,{AAAA,BBBB,...AAAB,...}
L*:L集合上元素组成的所有有穷长的串的集合,{ε,A,B,...,Z,a,b,...,z,AA,...ZZ,aa,bb,...,zz,ab,aab...}
D+:除了ε,D集合上元素组成的所有有穷长的串的集合,{A,B,...,Z,a,b,...,z,AA,...ZZ,aa,bb,...,zz,ab,aab...}
L(LUD)*:m属于L集合,n属于一个由L与D组成的集合的基础上,此集合上元素组成的所有有穷长的串的集合,m,n的所有字符串组成集合

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)。

I->I | IL |ID

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

D->0|1|...|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+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
  • 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)

最右推导:

  • i*i+i :E=>E+T=>E+=>E+ i =>   T + i =>  T * F  + i =>  T * i  + i =>  F * i  + i => i * i  + i 
  • 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=>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 ) 

猜你喜欢

转载自www.cnblogs.com/fqy1028/p/11511042.html