编译原理期末考试试题b卷及答案_第1页
编译原理期末考试试题b卷及答案_第2页
编译原理期末考试试题b卷及答案_第3页
编译原理期末考试试题b卷及答案_第4页
编译原理期末考试试题b卷及答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编译原理期末考试试题b卷及答案

一、单项选择题(每题2分,共10题20分)1.编译程序前三个阶段完成的工作是()A.词法分析、语法分析和代码优化B.代码生成、代码优化和词法分析C.词法分析、语法分析和语义分析D.词法分析、语法分析和目标代码生成答案:C2.下面()不是正规式的运算符。A.B.+C.|D.·答案:B3.有文法G:E→E+T|T,T→TF|F,F→(E)|id,则该文法句型E+TF的句柄是()A.E+TB.TFC.TD.F答案:C4.若项目集Ik含有A→α·,则在状态k时,仅当面临的输入符号a∈FOLLOW(A)时,才采取“A→α·”动作的一定是()A.LALR文法B.LR(0)文法C.LR(1)文法D.SLR(1)文法答案:D5.代码优化的目的是()A.节省时间B.节省空间C.节省时间和空间D.把编译程序进行等价交换答案:C6.词法分析器的输出结果是()A.单词的种别编码B.单词在源程序中的位置C.单词的种别编码和自身值D.单词自身值答案:C7.文法G产生的()的全体是该文法描述的语言。A.句型B.终结符集C.非终结符集D.句子答案:D8.下面关于语法树错误的是()A.根节点用文法开始符号标记B.每个叶子节点是一个终结符或非终结符C.内部节点一定是非终结符D.语法树的子树一定是短语答案:B9.一个数据类型通常包括的要素中,不包括()A.用于区别这种类型的数据对象的属性B.这种类型的数据对象可以具有的值C.对这种类型的数据对象的内存分配D.可以作用于这种类型的数据对象的操作答案:C10.后缀式ab+c+de-所表达的表达式为()A.(a+b)+c(d-e)B.(a+b+c)d-eC.(a+b)+(cd-e)D.a+b+cd-e答案:B二、多项选择题(每题2分,共10题20分)1.编译程序的阶段包括()A.词法分析B.语法分析C.语义分析D.中间代码生成E.代码优化和目标代码生成答案:ABCDE2.下面哪些是词法分析的工具()A.有穷自动机B.正规表达式C.下推自动机D.图灵机E.优先自动机答案:AB3.下列关于文法的说法正确的是()A.文法G是一个四元组(VN,VT,P,S)B.VN是一个非空有限集,称为非终结符集C.VT是一个非空有限集,称为终结符集D.VN和VT不相交E.P是产生式的有限集合答案:ABCDE4.语法分析的方法有()A.自顶向下B.自底向上C.自左向右D.自右向左E.从中间向两边答案:AB5.以下哪些是LR分析器的组成部分()A.总控程序B.分析表C.分析栈D.源程序E.目标程序答案:ABC6.代码优化中,可优化的程序范围包括()A.基本块内B.循环体内C.函数调用间D.整个程序E.语句之间答案:ABCD7.符号表的作用有()A.记录源程序中各个符号的必要信息B.辅助语义的正确性检查C.为代码生成阶段地址分配提供依据D.优化代码结构E.提高编译效率答案:ABC8.中间代码的形式有()A.逆波兰式B.三元式C.四元式D.树形表示E.线性表示答案:ABCD9.编译程序与解释程序的区别在于()A.编译程序将源程序翻译成目标程序B.解释程序边解释边执行C.编译程序生成的目标程序可多次执行D.解释程序不生成目标程序E.编译程序比解释程序运行效率高答案:ABCD10.下列哪些是编译程序的优化措施()A.合并已知量B.删除无用代码C.强度削弱D.循环优化E.公共子表达式提取答案:ABCDE三、判断题(每题2分,共10题20分)1.编译程序是对高级语言程序的解释执行。()答案:×2.一个正规式只能对应一个确定的有限自动机。()答案:×3.算符优先分析法每次都是对句柄进行归约。()答案:×4.规范归约和规范推导是互逆的两个过程。()答案:√5.对中间代码的优化依赖于具体的目标机器。()答案:×6.符号表中记录的信息在编译的不同阶段都要用到。()答案:√7.词法分析和语法分析可以同时进行。()答案:×8.一个上下文无关文法的开始符号可以是终结符。()答案:×9.目标代码生成时,不需要考虑目标机器的指令系统。()答案:×10.优化后的代码一定能提高程序的执行速度。()答案:×四、简答题(每题5分,共4题20分)1.简述编译程序的工作过程。答案:编译程序工作过程分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。词法分析将源程序转化为单词序列;语法分析构建语法树;语义分析检查语义;中间代码生成便于优化;代码优化提升效率;目标代码生成可执行的目标程序。2.简述自顶向下语法分析的基本思想。答案:从开始符号出发,根据产生式规则,试图逐步推导生成与输入串匹配的句子。对输入串从左到右扫描,为输入串寻找一个最左推导,若能成功推导出输入串,则分析成功,否则失败。3.什么是符号表?它在编译过程中有什么作用?答案:符号表是记录源程序中各符号必要信息的数据结构。作用是辅助语义检查,保证标识符的正确使用;为代码生成阶段地址分配提供依据,存储变量地址等信息。4.简述代码优化的目的和主要类型。答案:目的是提高目标代码的运行效率,节省时间和空间。主要类型有:删除公共子表达式、合并已知量、强度削弱、删除无用代码、循环优化等,通过这些优化减少运算量和存储量。五、讨论题(每题5分,共4题20分)1.讨论在编译过程中,语法分析和语义分析的关系。答案:语法分析是分析源程序的语法结构,构建语法树;语义分析是检查源程序语义正确性。语法分析为语义分析提供结构基础,语义分析基于语法结构进行语义检查和处理,二者相互关联,共同保障源程序的正确性和可执行性。2.对于一个给定的高级语言源程序,如何选择合适的编译方法?答案:需考虑源语言特点、目标机器性能、编译效率等。如语言规则简单且确定,可选用自顶向下或自底向上简单方法;语言复杂则需功能强的分析方法。目标机器性能低,注重代码优化。对编译速度要求高,选择效率高的编译算法。3.讨论优化技术在编译程序中的重要性及面临的挑战。答案:优化技术可提高目标代码运行效率,节省资源。但面临诸多挑战,如不同优化技术可能相互影响,增加复杂性;优化算法设计要兼顾效果与时间成本;要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论