编译试题.docVIP

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译试题

南京大学编译原理试题 2011.9.25 目录 第一部分 编译原理试题 5 1997年试题 5 1998年试题 10 1999年试题 12 2000年试题 14 2001年试题 17 2002年试题 19 2003年试题 20 2004年试题 22 2005年试题 23 2006年试题 25 2007年试题 26 2009年试题 27 期末考试试题汇总 28 第二部分 算法分析试题 33 第六章 培养好习惯构建新生活 33 第七章 有效小技巧,帮你改习惯 39 第一部分 编译原理试题 注:本习题总结版权归原作者,本人只纠正些错误,以及用word版呈现,以便读者学习交流。 1997年试题 六.填空 1.语言L的形式定义是L(G[S])=____________________________________________ 答:{x | s =*x, 其中S为文法识别符号,且x∈VT}. 2.当把=+看作关系时,=+是关系=的___________________________________ 答:传递性闭包. 3.扫描程序自动生成的实质是______________________________________________ 答:LR(k)分析表的自动生成. 4.对原程序进行编译时,可以有以下几种中间表示:_____、_____、_____与_____等。 答:逆波兰式,三元式,抽象语法树,四元式. 5.算符优先分析技术分析过程中,每步直接归约的是当前句型中的________________ 答:最左素短语. 七.简要回答下列问题 1.试简述二义性文法的概念。 答:如果对于某文法的同一个句子,存在两个不同的语法树,则称该句子试二义性的,包括二义性句子的文法成为二义性文法。 2.试简要说明栈在编译实现中的作用,并列举至少3种不同的用途。 答:提供一个后进先出数据结构实现类型。 用途1:存放标示符,实现静态作用域法则和最接近套嵌约定。 用途2:实现递归下降分析技术。 用途3:实现简单优先分析技术与算符优先分析技术。 用途4:实现LR分析技术。 用途5:作为整个程序数据空间,用于可变数据及管理过程的控制信息。 3.试简要说明运行时刻存储管理的策略,对照某种程序设计语言,说明策略的特点。 答:运行时存储管理策略有:静态存储分配、栈式分配和堆式分配。 静态存储分配:在编译时能确定目标程序运行中所需全部数据空间大小,编译时安排好运行时全部数据空间,确定每个数据对象的存储位置。 栈式分配:将整个程序数据空间设计为一个栈,每当调用一个过程时,它所需要的数据空间就分配在栈顶,每当过程工作结束时就释放这部分空间。 堆式分配:程序运行时有一个大的存储空间,每当需要时从这片空间中借用一块,不用时再退还。数据对象随即创建和消亡。每当过程调用结束时,局部变量值可保存,被调用生存周期可比调用生存周期更长。 八.试为下列状态转换图的相应的NFA确定化,要求写出关键步骤。 初态:B, A 终态:E, D 答: 1.子集法构造DFA a b c d AB[1] ABC[2] BD[3] E[4] / ABC[2] ABC[2] BD[3] BDE[5] / BD[3] AB[1] D[6] E[4] CE[7] E[4] / / / / BDE[5] AB[1] D[6] E[4] CE[7] D[6] / / / CE[7] CE[7] / / BD[3] / 2.构造DFA 3.DFA最小化 令I1={1, 2, 7} I2={3, 4, 5, 6},则(={I1, I2} {1, 2}a={2}?I1 {1, 2}b={3}?I2 {3, 4, 5, 6, 7}a?I1 {3, 4, 5, 6,7}a?I2 ∴ (new={I1, I2} 九.试用某种高级程序设计语言为下列文法G[M]: M::=Mab | Mac | dM | e B::=bB | b 写出递归下降识别程序。 要求:指名所用程序设计语言,变量说明等,说明性信息可以省略不写。 答: M ::= Ma(b | c) | dM | (改为: M ::= (dM | e)M M ::= a(b | c)M | ( 即: M ::= dMM | eM M ::= aM | ( M::= bM | cM void M1() { if (sym == ‘a’) { GetSymbol( ); M2( ); } else

文档评论(0)

pangzilva + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档