




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理考试卷(120分钟)班级 学号 姓名 评分 一、 填空 (20分,每空1分) 1文法G包括四个组成部分:一组终结符号,一组非终结符号,一组产生式,以及一个开始符号。 2文法按产生式的形式分为四种类型,它们是:0型文法,又称短语文法;1型文法,又称上下文有关文法;2型文法,又称上下文无关文法;3型文法,又称正规文法。 3最右推导称为规范推导,由规范推导产生的句型称为规范句型。 4设G是一个文法,S是它的开始符号,如果 S=*,则称是一个句型。仅由终结符号组成的句型是一个句子。 5 对于一个文法G而言,如果L(G)中存在某个句子对应两棵不同的语法树,那么该文法就称为是二义的。 6通常程序设计语言的单词符号分为五种:基本字、标识符、常数、算符、界限符。 7在自底向上分析法中,LR分析法把“可归约串”定义为句柄,算符优先分析法把“可归约串”定义为最左素短语。 8编译中常用的中间代码形式有逆波兰式、三元式、树代码和四元式等。 9对中间代码优化按涉及的范围分为局部优化,循环优化和全局优化。10局部优化主要包括合并已知量、利用公共子表达式和删除无用赋值等内容。 第1页二、编译过程通常分为哪几个主要阶段?每个阶段的主要功能?(15分)答:编译过程通常分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成六个主要阶段。各个阶段的主要功能如下:词法分析阶段:读入源程序,对构成源程序的字符流进行扫描和分解,识别出一个个单词,并表示成计算机内部的形式(TOKEN字)。语法分析阶段:在词法分析的基础上,将单词序列分解成各类语法短语,如“表达式”、“语句”、“程序”等,确定整个输入串是否构成语法上正确的程序。语义分析阶段:审查源程序有无语义错误,为代码生成阶段收集类型信息。中间代码生成阶段:将源程序翻译成一种复杂性介于源程序与目标程序之间的内部形式(中间代码)。代码优化:对前阶段产生的中间代码进行等价变换,目的是使将来生成的目标代码更为高效。目标代码生成:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。三、设有文法G1 (10分) G1:SSaQ Q1证明句型 QbRae 是规范句型 QQbR R RcSd e证:因为句型 QbRae 可由文法开始符S经过规范推导产生,推导过程如下:S =R SaQ =R SaR =R Sae =R Qae =R QbRae所以句型 QbRae 是规范句型。 2给出句型 QbRae 的短语,直接短语和句柄:短语:QbR e QbRae直接短语:QbR e句柄:QbR 第2页四、对于文法G2,填写各产生式的选择集合和G2的预测分析表。 (15分) G2: ETE SELECT()= ( , i E+TE SELECT()= + E SELECT()= # , ) TFT SELECT()= ( , i T*FT SELECT()= * T SELECT()= + , # , ) F(E) SELECT()= ( F i SELECT()= i +*()i# EETEETEEE+TEEETTFTTFTTTT*FTTTFF(E)F i五、对于文法G3,填写下列集合和G3的优先关系表。 (15分)G3:EE+T T FIRSTVT(E)= +, *, (, i LASTVT(E)= +, *, ), i TT*F F FIRSTVT(T)= *, (, i LASTVT(T)= *, ), i F(E)i FIRSTVT(F)= (, i LASTVT(F)= ), i +*()i#+*(=i#=第3页六、把下面的语句翻译成四元式序列。 (10分)(只给出最后结果,设nextstat当前值为100)while AC do if A0 then A:=A+1 else A:=A+2100:j ,A ,C ,102101:j ,- ,- ,0102:j ,A ,0 ,104103:j ,- ,- ,107104:+ ,A ,1 ,T1105:= ,T1 ,- ,A106:j ,- ,- ,100107:+ ,A ,2 ,T2108:= ,T2 ,- ,A109:j ,- ,- ,100110:S.CHAIN=101七、用基本块代码生成算法生成目标代码。 (15分)(假定允许使用R1和R2寄存器,临时变量Ti 出基本块后都不活跃)四元式选取R目标代码RVALUEAVALUET1:= A+B空闲的R1LD R1 , AADD R1 , BR1中含有T1T1在R1中T2:= C-T1空闲的R2LD R2 , CSUB R2 , R1R2中含有T2T2在R2中T3:= D*E空闲的R1LD R1 , DMUL R1 , ER1中含有T3R2中含有T2T3在R1中T2在R2中T4:= F+G释放R2ST R2 , T2LD R2 , FADD R2 , GR1中含有T3R2中含有T4T3在R1中T4在R2中T5:= T3-T4T3独占的R1SUB R1 , R2R1中含有T5T5在R1中W:= T2/T5空闲的R2LD R2 , T2DIV R2 , R1R2中含有WW在R2中释放R2ST R2 , W- 第4页编译原理复习题本门课程的重点是语法分析。它包含的内容广(第3章:文法;第5、6、7章:分析方法),基本概念和基本方法多。为了便于大家复习,现把这四章的内容归纳如下:一、 文法1 文法定义 G=(VN, VT, P, S)VN:一组非终结符号VT:一组终结符号P: 一组产生式S: 一个开始符号2 文法分类 按对产生式施加不同的限制把文法分成四种类型:0型:短语文法1型:上下文有关文法2型:上下文无关文法3型:正规文法(正则文法、线性文法)3 涉及的上下文无关文法:算符文法、算符优先文法、LL(1)文法、LR文法4 文法的二义性5 文法的实用限制二、 分析方法1 自顶向下分析递归下降法:分析LL(1)文法产生的句子;由一组递归过程组成。LL(1)分析法(预则分析法):分析LL(1)文法产生的句子;由一个总控程序和一个LL(1)分析表组成。2 自底向上分析算符优先分析法:非规范归约,用“最左素短语”定义“可归约串”;分析算符优先文法产生的句子;由一个总控程序和一个算符优先分析表组成。LR分析法:规范归约,用“句柄”定义“可归约串”;分析LR文法产生的句子;由一个总控程序和一个LR分析表组成。三、 基本概念(按概念的关联性分组记忆)1 直接推出、推导、句型、句子、语言、最左推导、最右推导(规范推导)、规范句型2 直接归约、归约、短语、直接短语、最左直接短语(句柄)、素短语、最左素短语、规范归约(最左归约)四、 基本方法(要求熟练做题)1 写递归下降子程序2 构造LL(1)分析表(涉及消除左递归、提左因子、FIRST、FOLLOW、SELECT集)3 构造算符优先分析表(涉及FIRSTVT、LASTVT集)其它章节的内容比较单一,在复习的基础上重点思考下列问题:1 什么叫翻译程序?什么叫汇编程序?什么叫编译程序?2 编译过程分哪几个主要阶段?每个阶段的主要任务是什么?3 单词符号分哪几类?各举出例子。4 存储分配有哪几种?影响存储分配策略的主要因素是什么?5 通常参数传递有哪些主要方式?每种方式是如何实现的?6 中间代码通常有哪些类型?各有什么特
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美术入门培训计划
- 文旅企业IP版权运营与商业化模式创新分析报告
- 坐井观天少儿美术教学体系
- 流体密封技术面试题及答案
- 邮储银行2025阜阳市秋招笔试综合模拟题库及答案
- 建设银行2025日照市金融科技岗笔试题及答案
- 2025年3D打印技术的4D打印技术
- 2025年3D打印的个性化定制技术
- 中国银行2025丽水市秋招笔试性格测试题专练及答案
- 2025行业新兴技术发展分析
- 5、2025语文四上教学计划【第5版】
- 四人合伙股份合同协议书
- 2025-2026学年冀美版(2024)小学美术二年级上册教学计划及进度表
- 2025版食堂承包合同补充协议模板(含财务管理)
- 2025-2030中国口腔护理品市场竞争策略研究与运行前景预测报告
- 大学生家教服务合同范本
- 家政合伙人协议合同范本
- 新教科版科学六年级上册全册表格式核心素养目标教案 (一)
- 小学道德与法治教师考试题及答案
- (2025年标准)管护移交协议书
- 中医药现代化国际市场拓展:2025年中医药国际市场竞争力提升策略报告
评论
0/150
提交评论