清华大学编译原理第二版课后习答案.doc

清华大学编译原理第二版课后习答案.doc

ID:56752030

大小:45.00 KB

页数:25页

时间:2020-07-07

清华大学编译原理第二版课后习答案.doc_第1页
清华大学编译原理第二版课后习答案.doc_第2页
清华大学编译原理第二版课后习答案.doc_第3页
清华大学编译原理第二版课后习答案.doc_第4页
清华大学编译原理第二版课后习答案.doc_第5页
资源描述:

《清华大学编译原理第二版课后习答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《编译原理》课后习题答案第一章第 4 题对下列错误信息,请指出可能是编译的哪个阶段(词法分析、语法分析、语义分析、代码生成)报告的。(1) else 没有匹配的if(2) 数组下标越界(3) 使用的函数没有定义(4) 在数中出现非数字字符答案:(1) 语法分析(2) 语义分析(3) 语法分析(4) 词法分析《编译原理》课后习题答案第三章第1 题文法G=({A,B,S},{a,b,c},P,S)其中P 为:S→Ac

2、aBA→abB→bc写出L(G[S])的全部元素。答案:L(G[S])={abc}第2 题文法G[N]为:N→D

3、NDD→0

4、1

5、2

6、3

7、

8、4

9、5

10、6

11、7

12、8

13、9G[N]的语言是什么?答案:G[N]的语言是V+。V={0,1,2,3,4,5,6,7,8,9}N=>ND=>NDD.... =>NDDDD...D=>D......D或者:允许0 开头的非负整数?第3题为只包含数字、加号和减号的表达式,例如9-2+5,3-1,7等构造一个文法。答案:G[S]:S->S+D

14、S-D

15、DD->0

16、1

17、2

18、3

19、4

20、5

21、6

22、7

23、8

24、9第4 题已知文法G[Z]:Z→aZb

25、ab写出L(G[Z])的全部元素。答案:Z=>aZb=>aaZbb=>aaa..Z...bbb=> aaa..ab...bbbL(G

26、[Z])={anbn

27、n>=1}第5 题写一文法,使其语言是偶正整数的集合。 要求:(1) 允许0 打头;(2)不允许0 打头。答案:(1)允许0 开头的偶正整数集合的文法E→NT

28、DT→NT

29、DN→D

30、1

31、3

32、5

33、7

34、9D→0

35、2

36、4

37、6

38、8(2)不允许0 开头的偶正整数集合的文法E→NT

39、DT→FT

40、GN→D

41、1

42、3

43、5

44、7

45、9D→2

46、4

47、6

48、8F→N

49、0G→D

50、0第6 题已知文法G:<表达式>::=<项>|<表达式>+<项><项>::=<因子>|<项>*<因子><因子>::=(<表达式>)|i试给出下述表达式的推导及语法树。(5)i+(i+i)

51、(6)i+i*i答案:<表达式><表达式> + <项><因子><表达式><表达式> + <项><因子>i<项><因子>i<项><因子>i( )(5) <表达式>=><表达式>+<项>=><表达式>+<因子>=><表达式>+(<表达式>)=><表达式>+(<表达式>+<项>)=><表达式>+(<表达式>+<因子>)=><表达式>+(<表达式>+i)=><表达式>+(<项>+i)=><表达式>+(<因子>+i)=><表达式>+(i+i)=><项>+(i+i)=><因子>+(i+i)=>i+(i+i)<表达式><表达式> + <项><项> * <因子><因

52、子> i<项><因子>ii(6) <表达式>=><表达式>+<项>=><表达式>+<项>*<因子>=><表达式>+<项>*i=><表达式>+<因子>*i=><表达式>+i*i=><项>+i*i=><因子>+i*i=>i+i*i第7 题证明下述文法G[〈表达式〉]是二义的。〈表达式〉∷=a

53、(〈表达式〉)

54、〈表达式〉〈运算符〉〈表达式〉〈运算符〉∷=+

55、-

56、*

57、/答案:可为句子a+a*a 构造两个不同的最右推导:最右推导1 〈表达式〉〈表达式〉〈运算符〉〈表达式〉〈表达式〉〈运算符〉a〈表达式〉* a〈表达式〉〈运算符〉〈表达式〉* a〈表达式〉〈运算

58、符〉a * a〈表达式〉+ a * aa + a * a最右推导2 〈表达式〉〈表达式〉〈运算符〉〈表达式〉〈表达式〉〈运算符〉〈表达式〉〈运算符〉〈表达式〉〈表达式〉〈运算符〉〈表达式〉〈运算符〉 a〈表达式〉〈运算符〉〈表达式〉 * a〈表达式〉〈运算符〉a * a〈表达式〉+ a * aa + a * a第8 题文法G[S]为:S→Ac

59、aBA→abB→bc该文法是否为二义的?为什么?答案:对于串abc(1)S=>Ac=>abc (2)S=>aB=>abc即存在两不同的最右推导。所以,该文法是二义的。或者:对输入字符串abc,能构造两棵不同的语

60、法树,所以它是二义的。Sa Bb cSA ca b第9 题考虑下面上下文无关文法:S→SS*

61、SS+

62、a(1)表明通过此文法如何生成串aa+a*,并为该串构造语法树。SS S *S S + aa a(2)G[S]的语言是什么?答案:(1)此文法生成串aa+a*的最右推导如下S=>SS*=>SS*=>Sa*=>SS+a*=>Sa+a*=>aa+a*(2)该文法生成的语言是:*和+的后缀表达式,即逆波兰式。第10 题文法S→S(S)S

63、ε(1) 生成的语言是什么?(2) 该文法是二义的吗?说明理由。答案:(1) 嵌套的括号(2) 是二义的,因为对于()(

64、)可以构造两棵不同的语法树。第11 题令文法G[E]为:E→T

65、E+T

66、E-TT→F

67、T*F

68、T/FF→(E

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

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

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