编译原理---习题资料.doc

编译原理---习题资料.doc

ID:57581234

大小:1.15 MB

页数:19页

时间:2020-08-27

编译原理---习题资料.doc_第1页
编译原理---习题资料.doc_第2页
编译原理---习题资料.doc_第3页
编译原理---习题资料.doc_第4页
编译原理---习题资料.doc_第5页
资源描述:

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

1、1、何谓源程序、目标程序、翻译程序、编译程序和解释程序?它们之间可能有何种关系?.解:源程序是指以某种程序设计语言所编写的程序。目标程序是指编译程序(或解释程序)将源程序处理加工而得的另一种语言(目标语言)的程序。翻译程序是将某种语言翻译成另一种语言的程序的统称。编译程序与解释程序均为翻译程序,但二者工作方法不同。解释程序的特点是并不先将高级语言程序全部翻译成机器代码,而是每读入一条高级语言程序语句,就用解释程序将其翻译成一段机器指令并执行之,然后再读入下一条语句继续进行解释、执行,如此反复。即边解释边执行,翻译所得的指令序列并不保

2、存。编译程序的特点是先将高级语言程序翻译成机器语言程序,将其保存到指定的空间中,在用户需要时再执行之。即先翻译、后执行。2、一个典型的编译系统通常由哪些部分组成?各部分的主要功能是什么?.解:一般说来,编译程序主要由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、信息表管理程序、错误检查处理程序组成。3、为什么要分最左推导和最右推导?最左(右)推导:为了对句子结构进行确定性的分析4、文法G6为:N→D

3、NDD→0

4、1

5、2

6、3

7、4

8、5

9、6

10、7

11、8

12、9(1)G6的语言是什么?0~9的数字组成的

13、非空任意串。L(G6)={x+

14、x∈{0,1,2,3,4,5,6,7,8,9}}L(G6)={xx*

15、x∈{0,1,2,3,4,5,6,7,8,9}}{0,1,2,3,4,5,6,7,8,9}+(2)给出句子0127、34和568的最左和最右推导。最左推导:N=>ND=>NDD=>NDDD=>DDDD=>0DDD=>01DD=>012D=>0127最右推导:N=>ND=>N7=>ND7=>N27=>ND27=>N127=>D127=>01275、例构造一个文法G使L(G)={an

16、n≥0}G(S):S→aS

17、ε例构造一个文法G使L(

18、G)={an

19、n≥1,n为奇数}G(S):S→aaS

20、a例构造一个文法G使L(G)={anbm

21、n≥1,m≥1G(S):S→ABA→aA

22、aB→bB

23、b例构造一个文法G3使L(G3)={anbn

24、n≥1}G3(S):S→aSb

25、ab例构造生成语言L={anbn+1

26、n>=0}的文法G(S):S->aSb

27、b例构造生成语言L={anban

28、n>=1}G(S):S->aAaA->aAa

29、b例构造生成语言L={anbnci

30、n³1,i³0}的文法G(Z):Z®ABA®aAb

31、abB®cB

32、e例构造生成语言L(G)={ambn

33、n>m≥1}

34、G(S):S→ABA→aAb

35、abB→bB

36、b6、写一个文法,使其语言是奇数集,且每一个奇数不以零开头。7、如果文法G是无二义的,则它的任何句子α( A.最左推导和最右推导对应的语法树必定相同8、.何谓“标志符”,何谓“名字”,两者的区别是什么? 答:标志符是一个没有意义的字符序列,而名字却有明确的意义和属性。 9、.令+、*和↑代表加、乘和乘幂,按如下的非标准优先级和结合性质的约定,计算1+1*2↑2*1↑2的值。 (1)优先顺序(从高到低)为+、*和↑,同级优先采用左结合。 (2)优先顺序为↑、+、*,同级优先采用右结合。 答:

37、(1)1+1*2↑2*1↑2=2*2↑2*1↑2=4↑2*1↑2=4↑2↑2=16↑2=256 (2)1+1*2↑2*1↑2=1+1*2↑2*1=1+1*4*1=2*4*1=2*4=8 10、令文法为 E->T

38、E+T

39、E-T T->F

40、T*F

41、T/F F->(E)

42、i (1)给出i+i*i、i*(i+i)的最左推导和最右推导。 (2)给出i+i+i、i+i*i和i-i-i的语法树,并给出短语,简单短语和句柄。 答:(1) i*(i+i)的最左推导: E=>T=>T*F=>F*F=>i*F=>i*(E)=>i*(E+T)=>i*(T

43、+T)=>i*(F+T)=>i*(i+T)=>i*(i+F)=> i*(i+i) i*(i+i)的最右推导: E=>T=>T*F=>T*(E) =>T*(E+T)=>T*(E+F)=>T*(E+i)=>T*(T+i)=>T*(F+i)=> T*(i+i)=> F*(i+i) =>  i*(i+i)(2) i+i+i的短语:i1, i2, i3, i1+ i2, i1+i2+ i3 简单短语:i1, i2, i3 句柄:i1(3)给出i+i+i、i+i*i和i-i-i的语法树11、证明下面的文法是二义的:S->iSeS

44、iS

45、i 证明

46、:反例法: 对于该文法的句子iiiei有两个最右推导如下,所以该文法是二义的: S=>iS=>iiSeS=>iiSei=>iiiei S=>iSeS=>iSei=>iiSei=>iiiei12、把下面的文法改写成无二义的:S->SS

47、

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

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

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