河南科技大学期末考试编译原理试卷及答案.docxVIP

河南科技大学期末考试编译原理试卷及答案.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
得 分 河南科技大学电信科卷?A 一.??填空题(每空?2?分,共?20?分) 1.??不同的编译程序关于数据空间的存储分配策略可能不同,但大部分编译中采用的方案有两种:静 态存储分配方案和动态存储分配方案,而后者又分为(1)?和?(2)?。 2.?规范规约是最(3)规约。 3.?编译程序的工作过程一般划分为?5?个阶段:词法分析、(4)?、语义分析与中间代码生成,代码优化及(5) 。另外还有(6)和出错处理。 4.表达式?x+y*z/(a+b)的后缀式为?(7)?。 5.文法符号的属性有综合属性和?(8)。 6.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组?a[1..15,1..20]某个元素?a[i,j]的地址 计算公式为(9)。 7.局部优化是局限于一个(10)范围内的一种优化。 得分 二.??选择题(1-6?为单选题,7-8?为多选题,每问?2?分,共?20?分) 1.?一个上下文无关文法?G?包括四个组成部分:一组终结符,一组非终结符,一个(?),以及一 组(?)。 A.?字符串 B.?产生式 C.?开始符号 D.??文法 2.程序的基本块是指(?)。 A.?一个子程序 B.?一个仅有一个入口和一个出口的语句 C.?一个没有嵌套的程序段 D.?一组顺序执行的程序段,仅有一个入口和一个出口 3.?高级语言编译程序常用的语法分析方法中,递归下降分析法属于(?)分析方法。 A.?自左向右 B.?自顶向下 C.?自底向上 D.?自右向左 4.在通常的语法分析方法中,(?)特别适用于表达式的分析。 A.?算符优先分析法 B.?LR?分析法 C.?递归下降分析法 D.?LL(1)分析法 5.经过编译所得到的目标程序是(?)。 A.?四元式序列 B.?间接三元式序列 C.?二元式序列 D.?机器语言程序或汇编语言程序 6.?一个文法所描述的语言是(?);描述一个语言的文法是(?)。 第?1?页?共?12?页 A.?唯一的 B.?不唯一的 C.?可能唯一,也可能不唯一 7.?如果在文法?G?中存在一个句子,当其满足下列条件(?)之一时,则称该文法是二义文法。 A.?其最左推导和最右推导相同 B.?该句子有两个不同的最左推导 C.?该句子有两个不同的最右推导 D.?该句子有两棵不同的语法树 E.?该句子对应的语法树唯一 8.?下面(?)语法制导翻译中,采用拉链—回填技术。 A.??赋值语句 B.?布尔表达式的计算 C.??条件语句 D.?循环语句 得分 三.??解答题(共?60?分) 1.?(共?15?分)已知文法?G[E]: E→ETE|(E)|i T→*|+ (1(?将文法?G?改造成?LL(1)文法;(5?分) (2(?构造文法?G?中每个非终结符的?FIRST?集合及?FOLLOW?集合;(5?分) (3(?构造?LL(1)分析表。(5?分) 2.?(共?12?分)给定文法?G[S]:S→S(S)|ε (1)?给出句子(()())()()的规范推导过程;(4?分) (2)?指出每步推导所得句型的句柄;(4?分) (3)?画出该句子的语法推导树。(4?分) 3.?(共?8?分)在一个移入-规约分析过程中采用以下的语法制导翻译模式,在按一个产生式规约时,立即执行 括号中的动作。 A→aB {print?“0”;} A→c {print?“1”;} B→Ab {print?“2”;} (1( 当分析器的输入为?aacbb?时,打印的字符串是什么?(3?分) (2( 写出分析过程。(5?分) 4.?(10?分)翻译循环语句?while?(ab)?do?if?(cd)?then?x:=y+z?。要求:给出加注释的分析树及四元式 序列。 参考以下部分翻译模式: (1)??S→if?E?then?M?S1 {backpatch(E.truelist,M.quad); S.nextlist:=merge(E.falselist,S1?.nextlist)} (2)??S→while?M1?E?do?M2?S1?{backpatch(S1.nextlist,M1,.quad); backpatch(E.truelist,M2,.quad); 第?2?页?共?12?页 S.nextlist:=E.falselist emit?(‘j,-,-,’M1?.quad)} (3)??S→A {S.nextlist:=makelist()} (4)??L→S {L.nextlist:=S.nextlist} (5)??M→ε {M.quad:=nextquad} (6)??E→id1?relop?id2 {E.truelist:=makelist(nextquad); e.falselist:=makelist(nextquad+1);

文档评论(0)

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

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

1亿VIP精品文档

相关文档