编译原理期末试题(含答案+大题集+重要知识点).docx

编译原理期末试题(含答案+大题集+重要知识点).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《编译原理》期末试题(一) 、是非题(请在括号内,正确的划 V,错误的划X)(每个2分,共20分) 1编译程序是对高级语言程序的解释执行。 (X 2.—个有限状态自动机中,有且仅有一个唯一的终态。 (X 3.—个算符优先文法可能不存在算符优先函数与之对应。 (V) 4?语法分析时必须先消除文法中的左递归 。(X 5. LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。 (V 6.逆波兰表示法表示表达式时无须使用括号。 (V) 7.静态数组的存储空间可以在编译时确定。 (X 进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。 (X 9?两个正规集相等的必要条件是他们对应的正规式等价。 (X 10. 一个语义子程序描述了一个文法所对应的翻译工作。 (X 二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论 )(每个4分,共40分) 1?词法分析器的输出结果是 。 A .()单词的种别编码 B . C .()单词的种别编码和自身值 D. 2.正规式 M 1和M 2等价是指 。 A . ( ) M1和M2的状态数相等 C . ( ) M1和M2所识别的语言集相等 ()单词在符号表中的位置 ()单词自身值 B . ( ) M1和M2的有向边条数相等 D . ( ) M1和M2状态数和有向边条数相等 如果文法G是无二义的,则它的任何句子 a A .()最左推导和最右推导对应的语法树必定相同 B .()最左推导和最右推导对应的语法树可能不同 C .()最左推导和最右推导必定相同 D .()可能存在两个不同的最左推导,但它们对应的语法树相同 构造编译程序应掌握 。 A.()源程序 B .()目标语言 C .()编译方法 D .()以上三项都是 四元式之间的联系是通过 实现的。 A.()指示器 B .()临时变量 C .()符号表 D .()程序变量 表达式(「A B) A (CV D)的逆波兰表示为 。 A. ( ) 「ABA CD V B . ( ) A「B CD VA C . ( ) AB V「CDVA D. ( ) A 「VA CD V 优化可生成 的目标代码。 A.()运行时间较短 B.()占用存储空间较小 C .()运行时间短但占用内存空间大 D .()运行时间短且占用存储空间小 下列 优化方法不是针对循环优化进行的。 A.()强度削弱 B .()删除归纳变量 C .()删除多余运算 D .()代码外提 10 .编译程序使用 区别标识符的作用域。 A.()说明标识符的过程或函数名 B .()说明标识符的过程或函数的静态层次 C .()说明标识符的过程或函数的动态层次 D.()标识符的行号 三、 填空题(每空1分,共10分) 1 ?计算机执行用高级语言编写的程序主要有两种途径: ___解释—和—编译 —。 2?扫描器是—词法分析器—,它接受输入的— 源程序__,对源程序进行―词法分析—并识别出一个个 单词符号,其输出结果是单词符号,供语法分析器使用。 3?自上而下分析法采用 ―移进__、归约、错误处理、 —接受__等四种操作。 一个LR分析器包括两部分:一个总控程序和 一张分析表__。 后缀式abc-/所代表的表达式是 a/(b-c)__。 局部优化是在__基本块—范围内进行的一种优化。 四、 简答题(20分) 简要说明语义分析的基本功能。 答:语义分析的基本功能包括 :确定类型、类型检查、语义处理和某些静态语义检 查。 考虑文法 G[S]: S t (T) | a+S | a T t t,S | S 消除文法的左递归及提取公共左因子。 解:消除文法G[S]的左递归: St (T) | a+S | a Tt ST Tt ,ST | £ 提取公共左因子: St (T) | aS St +S | Tt ST Tt ,ST | £ 试为表达式 w+(a+b)*(c+d/(e-10)+8) 写出相应的逆波兰表示。 解:w a b + c d e 10 - / + 8 + * + 按照三种基本控制结构文法将下面的语句翻译成四元式序列: while (AC A BD) { if (A 1) C=C+1; else while (A D) A=A+2; }。 解:该语句的四元式序列如下 (其中E1、E2和E3分别对应A V C A B V D、A》1和AD ,并且关系运算符 优先级高): (j,A,C,102) (j,_,_,113) (j,B,D,104) (j,_,_,113) (j=,A,1,106) (j,_,_,108) (+, C, 1, C) (j,_,_,112) (j W ,A,D,110) (j,_,_,112) (

文档评论(0)

136****3783 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档