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

下载本文档

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

文档简介

《编译原理》试卷及答案

单项选择题(每题2分,共10题)1.词法分析器的输出是()A.单词的种别编码B.单词的种别编码和自身值C.单词在源程序中的位置D.单词自身值2.下面()不是编译程序的组成部分。A.词法分析器B.设备管理程序C.语法分析器D.代码生成器3.一个句型中的最左()称为该句型的句柄。A.短语B.简单短语C.素短语D.终结符号4.编译程序中语法分析器接收以()为单位的输入。A.单词B.表达式C.产生式D.句子5.若项目集Ik含有A→α·,则在状态k时,仅当面临的输入符号a∈FOLLOW(A)时,才采取“A→α·”动作的一定是()A.LALR文法B.LR(0)文法C.LR(1)文法D.SLR(1)文法6.文法G所描述的语言是()的集合。A.文法G的字母表V中所有符号组成的符号串B.文法G的字母表V的闭包V中的所有符号串C.由文法的开始符号推出的所有符号串D.由文法的开始符号推出的所有终结符号串7.设有文法G[S]:S→SS|S+S|(S)|a,该文法()二义性文法。A.是B.不是C.无法判断D.以上都不对8.算符优先分析法每次都是对()进行归约。A.句柄B.最左素短语C.素短语D.简单短语9.已知文法G[E]:E→E+T|T,T→TF|F,F→(E)|i,则句型E+TF的句柄是()A.E+TB.TFC.TD.F10.代码优化的目的是()A.节省时间B.节省空间C.节省时间和空间D.把编译程序进行等价交换多项选择题(每题2分,共10题)1.编译程序阶段包括()A.词法分析B.语法分析C.语义分析D.代码生成2.下面哪些是词法分析的任务()A.识别单词B.构造单词的机内表示C.去除注释D.检查语法错误3.语法分析常用的方法有()A.自顶向下B.自底向上C.自左向右D.自右向左4.下列属于LR分析器的有()A.LR(0)分析器B.SLR(1)分析器C.LALR(1)分析器D.LR(1)分析器5.中间代码的形式有()A.逆波兰式B.三元式C.四元式D.树形表示6.符号表的作用有()A.收集符号的属性B.辅助语法语义分析C.辅助代码生成D.优化代码7.下列哪些是属性文法的组成部分()A.一个上下文无关文法B.一系列属性的定义C.一组语义规则D.代码生成规则8.代码优化可在哪些阶段进行()A.中间代码生成阶段B.目标代码生成阶段C.词法分析阶段D.语法分析阶段9.算符优先关系包括()A.小于B.小于等于C.大于D.大于等于10.以下哪些是编译程序生成目标代码的方式()A.生成绝对机器代码B.生成可重定位的机器代码C.生成汇编语言代码D.生成高级语言代码判断题(每题2分,共10题)1.编译程序是对高级语言程序的解释执行。()2.词法分析和语法分析本质上都是对源程序的结构进行分析。()3.一个文法是二义性的,则该文法不能产生句子。()4.语法分析时必须先消除文法的左递归。()5.LR分析器是一种自顶向下的语法分析器。()6.符号表中记录的信息在编译的不同阶段都要用到。()7.中间代码生成是编译程序的关键阶段。()8.算符优先分析法比规范归约法效率低。()9.优化后的代码一定比未优化的代码运行速度快。()10.目标代码生成阶段的任务是把中间代码变换成目标机器上的可执行代码。()简答题(每题5分,共4题)1.简述编译程序的工作过程。答:编译程序工作过程分词法分析,将源程序分割成单词;语法分析,分析单词构成的语法结构;语义分析,审查源程序语义;中间代码生成,产生中间表示形式;代码优化,改进中间代码;目标代码生成,生成目标机器可执行代码。2.什么是LL(1)文法?答:LL(1)文法是一种自顶向下语法分析的文法。第一个L表示从左到右扫描输入串,第二个L表示最左推导,1表示分析时向前看一个输入符号。它无左递归和公共左因子,能根据当前输入符号唯一确定要选用的产生式。3.简述语法分析自底向上的基本思想。答:自底向上语法分析从输入串开始,逐步进行“归约”,试图把输入串归约为文法的开始符号。通过寻找当前句型中的可归约串(如句柄、素短语等),用相应产生式的左部替换可归约串,直至归约到开始符号。4.简述符号表的作用。答:符号表用于收集、记录源程序中符号的属性信息,如名字、类型、作用域等。辅助语法和语义分析,确保符号使用合法。在代码生成阶段,为变量分配存储单元等,是编译各阶段信息交流的重要数据结构。讨论题(每题5分,共4题)1.讨论LL(1)分析法和LR分析法的优缺点。答:LL(1)分析法优点是分析过程直观,易于手工实现,适合规模较小、结构简单的文法;缺点是对文法要求严格,需无左递归和公共左因子,适用范围窄。LR分析法优点是对文法适应性强,能处理大多数程序设计语言文法,分析效率高;缺点是实现复杂,对文法计算量大。2.如何判断一个文法是否为二义性文法?若文法是二义性的,有什么解决办法?答:判断方法:若一个文法存在某个句子有两棵不同的语法树,则为二义性文法。解决办法:修改文法,消除二义性;给二义性文法加消除二义性规则,在分析时按规则选择正确推导或归约路径。3.讨论代码优化的重要性及常用的优化技术。答:代码优化重要性在于提高目标代码质量,节省运行时间和存储空间。常用优化技术有局部优化(如基本块内的常量合并、公共子表达式消除等)、循环优化(如代码外提、强度削弱等)、全局优化(如全局公共子表达式消除、复写传播等)。4.讨论属性文法在编译中的应用。答:属性文法用于在语法分析基础上进行语义处理。在编译中,通过定义属性和语义规则,为语法树的节点附加语义信息,实现类型检查、语义计算、符号表填写等语义分析任务,将语法和语义紧密结合,保证源程序语义正确,辅助代码生成。答案单项选择题1.B2.B3.B4.A5.D6.D7.A8.B9.C10.C多项

温馨提示

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

评论

0/150

提交评论