04-05编译原理及实践(a)卷

04-05编译原理及实践(a)卷

ID:33705076

大小:64.59 KB

页数:3页

时间:2019-02-28

04-05编译原理及实践(a)卷_第1页
04-05编译原理及实践(a)卷_第2页
04-05编译原理及实践(a)卷_第3页
资源描述:

《04-05编译原理及实践(a)卷》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、该函数调用结束时的返回地址(00401353)四、(8分)文法G[S]的产生式如下:S->SaA

2、AA->AbB

3、BB->cSd

4、e1.证明AacAbcBaAdbed是文法G的一个句型;2.给出该句型的短语、直接短语和句柄。五、(10分)考虑文法G[S]:主调函数的控制链c:3V栈顶一、填空题(每空1分,共22分)1.编译器的编译过程一般包括了6个逻辑阶段,它们分别是词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成。2.正规表达式是单词的描述工具,用來定义描述单词结构(定义单词)。有穷自动机是单词的识别系统,作为

5、一种识别装置,它能准确地识别正规集,即识别正规式所表示的集合。3.Chomsky把文法及语言分为尘类,上下文无关文法是描述程序设计语言语法结构的形式工具。4.给定文法A->bA

6、cc,则符号串①cc②bcbc③bcbcc④bccbcc⑤bbbcc中,①⑤是该文法所定义的句子。5.编译过程中,语法分析器的任务是以词法分析程序输出的记号序列为输入,分析源程序的语法结构,判断它是否为相应程序设计语言的合法程序,语法分析的结果表示为分析树(parsetree)或语法树(syntaxtree)。6.文法G只有递规定义定义,L(G)中句子才是

7、无穷的。两个文法等价,当且仅当L(G1)=L(G2)o7.语法分析算法可分为自上而下分析法和自下而上分析法两大类。(16)是从文法的开始符号出发,反复使用文法的产生式,寻找与输入符号串匹配的推导。仃7)是从输入符号串开始,逐步进行归约,直至归约到文法的开始符号。&规范句型每次规约的是句型的旬柄。9.文法符号的属性有軽和继承两种。10.我们可以将包含了正规表达式的文本文件作为输入,利用工具lex为我们自动生成词法分析程序。Yacc是一个语法分析器自动生成器。11.语法分析算法可分为自上而下分析法和自下而上分析法两大类。(16)是从文

8、法的开始符号出发,反复使用文法的产生式,寻找与输入符号串匹配的推导。(17)是从输入符号串开始,逐步进行归约,直至归约到文法的开始符号。二、(10)现给你一个程序设计语言的词法和语法,要求你编写词法分析器和语法分析器,请分别试述你着手编写词法分析器和语法分析器的基本步骤。词法分析器的构造:正规式一NFA—DFA—最小DFA—编写程序一测试三、(10)目标代码运行吋,系统为日标程序分配的存储空间按用途可划分为几个部分?什么是活动记录?请给出C语言活动记录的内容。系统为目标程序分配的存储空间按用途可划分为:代码区域,全程/静态区域,栈

9、,自由空间,堆。活动记录是:一段连续的存储区,用以存放过程的一次执行所需要栈底的信息。C语言所调用函数的活动记录示例(函数调用分析中的举例)S->AIBA->b

10、cB->(C)C->CS

11、S1.消除该文法的左递归。2.为消除左递归后的文法的非终结符构造First集合和Follow集合。六、(6分)试述编译程序过程中引入中间代码的优点。1.屮间代码使编译器更容易重定向:不同机器上的编译器可以在已有前端的基础上附加一个适合这这台新机器的后端来生成。2.可以在中间代码上进行与机器无关的代码优化。七、(6分)通过下面文法给出的数的整数值(

12、它1属性),写出一个属性文法:number-*numberdigit

13、digitdigit->0

14、l

15、2

16、3

17、4

18、5

19、6

20、7

21、8

22、9七、(6分)通过下面文法给出的十进制数的浮点数值,写出一个属性文法(提示:使用一个属性count计算小数点右面数字的个数):dnum->num.numnum->numdigit

23、digitdigit->0

24、l

25、2

26、3

27、4

28、5

29、6

30、7

31、8

32、9八、(每题5分,共20分)给定文法G[A]:A->(A)

33、a1.构造文法G[S]的识别所有活前缀LR(1)项目的DFA。2.构造相应的LR(1)分析表。3.合并同

34、心集,构造LALR(l)分析表4.写出句子((a))的分析过程。九、(8分)假设if语句if-stmt—if(E)SIIif(E)SIelseS2生成下面的三地址码模式:if_falsetlgotoLIgotoL2labelLIlabelL2while语句while-stmt-^while(E)S生成下面的三地址码模式:labelLIif_fa.lsetlgotoL2gotoLIlab

35、elL2试写出语句if(true)while(true)if(true)breakelseother生成的三地址码序列:(注:对于other语句其对应的三地址码可直接翻译成other,if-else语句满足最近嵌套规则)二、(10)写出一个生成与下

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

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

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