编译原理习题习题资料

编译原理习题习题资料

ID:40883644

大小:262.50 KB

页数:4页

时间:2019-08-09

编译原理习题习题资料_第1页
编译原理习题习题资料_第2页
编译原理习题习题资料_第3页
编译原理习题习题资料_第4页
资源描述:

《编译原理习题习题资料》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、6、写一个文法,使其语言是奇数集,且每一个奇数不以零开头。13、给出下面语言的相应文法: L1={anbnci

2、n≧1,i≧0}L2={aibncn

3、n≧1,i≧0}L3={anbnambm

4、m,n≧0}L4={1n0m1m 0n

5、m,n≧0} 答:(1)   S->AB  A->aAb

6、ab  B->Bc

7、ε     (2)   S->AB  B->bBc

8、bc  A->Aa

9、ε (3)   S->AA  A-> aAb

10、ε (4)   S->1S0

11、A  A-> 0A1

12、ε16、给出下面的正规表达式。(1)以01结尾的二进制数串;正规式

13、(0

14、1)*01或(0*1*)*01(2)能被5整除的十进制整数;(0

15、1

16、2

17、3

18、4

19、5

20、6

21、7

22、8

23、9)*(0

24、5)或(0*1*2*3*4*5*6*7*8*9*)*(0

25、5)或(0

26、5)

27、(1

28、2

29、3

30、…

31、9)(0

32、1

33、2

34、3

35、…

36、9)*(0

37、5)(3)包含奇数个1或者奇数个0的二进制串;0*1(0

38、10*1)*正规式0*1(0

39、10*1)*

40、1*0(1

41、01*0)*20、考虑下面文法G1:S→a

42、∧

43、(T)T→T,S

44、S(1)消去G1的左递归;S→a

45、∧

46、(T)T→ST’T’→,ST’

47、ε(2)经改写后的文法是否是LL(1)文法,给出

48、预测分析表。FIRST(a)∩FIRST(∧)∩FIRST((T))=中FIRST(,ST’)∩FIRST(ε)=中FIRST(T’)∩FOLLOW(T’)=中经改写后的文法满足3个条件,所以是LL(1)的22、对下面的文法GE→TE'E'→+E

49、εT→FT'T'→T

50、εF→PF'F'→*F'

51、εP→(E)

52、a

53、b

54、∧(1)计算这个文法的每个非终结符的FIRST和FOLLOW。(2)证明这个文法是LL(1)的。(3)构造它的预测分析表。(4)构造它的递归下降分析程序。(1)FIRST(E)={(,a,b,^}FOLLOW(E)={#,)}F

55、IRST(E')={+,ε}FOLLOW(E')={#,)}FIRST(T)={(,a,b,^}FOLLOW(T)={+,),#}FIRST(T')={(,a,b,^,ε}FOLLOW(T')={+,),#}FIRST(F)={(,a,b,^}FOLLOW(F)={(,a,b,^,+,),#}FIRST(F')={*,ε}FOLLOW(F')={(,a,b,^,+,),#}FIRST(P)={(,a,b,^}FOLLOW(P)={*,(,a,b,^,+,),#}(2) 考虑下列产生式: E'→+E

56、εeT'→T

57、εe F'→*F'

58、εF'→

59、*F'

60、εFIRST(+E)∩FIRST(ε)={+}∩{ε}=φ FIRST(+E)∩FOLLOW(E')={+}∩{#,)}=φ FIRST(T)∩FIRST(ε)={(,a,b,^}∩{ε}=φ FIRST(T)∩FOLLOW(T')={(,a,b,^}∩{+,),#}=φ FIRST(*F')∩FIRST(ε)={*}∩{ε}=φ FIRST(*F')∩FOLLOW(F')={*}∩{(,a,b,^,+,),#}=φ FIRST((E))∩FIRST(a) ∩FIRST(b) ∩FIRST(^)=φ 所以,该文法式LL(1)文法.(

61、3)procedure E; begin  if sym='(' or sym='a' or sym='b' or sym='^'       then begin T; E' end      else error end procedure E'; begin  if sym='+'  then begin advance; E end  else if sym<>')' and sym<>'#' then error end procedure T; begin  if sym='(' or sym='a' or sym='b' or

62、 sym='^'       then begin F; T' end   else error end  procedure T'; begin  if sym='(' or sym='a' or sym='b' or sym='^'     then T    else if sym='*' then error end procedure F; begin  if sym='(' or sym='a' or sym='b' or sym='^'       then begin P; F' end      else error en

63、d  procedure F'; begin  if sym='*'       then begin advance; F' end end procedure P; begi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。