编译原理 试题及答案.docx
《编译原理 试题及答案.docx》由会员分享,可在线阅读,更多相关《编译原理 试题及答案.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程测试试题(04A卷)I、命题院(部):数学与计算机科学学院n、课程名称:编译原理 n、I测试学期:20222022学年度第1学期IV、测试对象:数计、国交学院计科专业2004级1、2、国交班V、问卷页数(A4):3页VI、答卷页数(A4):4人VIL考试方式:闭卷(开卷、闭卷或者课程小论文,请填写清晰)VIIL问卷内容:(请老师在出题时安排紧凑,填空题象征性的留出一点空格, 学生将所有的答案做在答题纸上的规定位置,并写清晰大题、小题的题号)一、填空题(共3()分,3()个空,每空1分)1、典型高级程序设计语言编译系统的工作过程普通分为六个阶段,即词法分析、语法 分析、语义分析、中间代码生成
2、、目标代码生成。编译阶段的两种组合方式是 组合法和按遍组合法,这两种组合方式的主要参考因素都是的特征。2、Chomsky将文法按其所表示语言的表达能力,由高往低分为四类:0型,1型,2型,3型文法。其中,2型文法也称,它的所有规则a一储份茜足:ae,阵(VUV)* N丁 且,仅当忏时例外。3、现代编译系统多采用 方法,即在语法分析过程中根据各个规则所相联的 或 者所对应的语义子程序进行翻译的办法。该方法使用 为工具来说明程序设计语言的语义。4、构造与NFAM等价的正规文法G的方法如下:(1)对转换函数f(A, a)=B或者f(A, 8)=B,改成形如 或者 的产生式;(2)对可识别终态Z,增加
3、一个产生式:o5、代码生成要考虑的主要问题:充分利用 的问题、选择 的问题、选择 的问题。6、设有穷自动机M=(K, , f, S, Z),若当M为时,满足zOKS, a且)zOZ,或者当M为 时,满足RS, ahPez,则称符号串可被M所。7、符号表中每一项对应一个多元组。符号表项的组织可分为组织、组织、组 织等。8、对于A V 义 A 的后续符号集:FOLLOy(A)=a|S= uAp, aev,且 , uV1 0V+;若,则#田11/)c)。也可以定义为:FOLLOW(A)=a|S= *.Aa .,a evjo 若有,则规定# FOLLOW(A)。9、基本块的定义:一个基本块是指程序中一
4、个 执行的语句序列,其中惟独一个入口和一个出口。入口是程序第一个语句或者转移语句的目标语句,或者转移语句的后继第一 个语句。出口是程序 或者转移语句。在基本块范围内的优化称为 o10、预测分析器由预测分析表、先进后出栈(用来存放分析过程的语法符号)和 三部份组成。其中预测分析表是一个二维矩阵,其形式为MA, a,其中A V,日丫或者#。 若有产生式A-a,使得,则将A-母真入MA, a中。(书写时,通常省略规则左部, 只填一(X。)对所有的M-A, a标记为出错。二、简述题(共20分,4个小题,每小题5分)1、简述将NFA转换为最小化DFA的步骤。2、简述静态存储分配、栈式存储分配和堆式存储分
5、配的特点和主要用途。3、以表达式a:二b*(-c)+b/(-d)为例,简述常用的三种中间代码表示形式。4、简述判别文法G是否为LL(1)文法的步骤和将一个非LL(1)文法转换为LL(1)文法的 方法。三、应用题(共50分)1、有文法GS:(12分)5) B bBd6)B-b5、构造GS的LR(O)项目集规范族DFA,并据此判断GS是否为LR(O)文法。 (6分)6、进一步判断GS是否为SLR文法,并给出对应的SLR分析表。(6分)3、给出输入串bbd#的SLR分析过程。(4分)4、判断GS是否为LR(1)文法和LALR(l)文法。(2分)编译原理课程测试试卷评分标准(数计学院04计科A卷)一、
6、填空题参考答案(共30分,30个空,每空1分)题号1234参考 答案代码优化、先后端、 源语言与目标机器上下文无关文法、V、| N加二IM语法制导翻译、语 义动作、属性文法AaB、A-B、Z题号5678参考 答案寄存器、计算机指令 系统、计算次序NFA、DFA、接受(识别 )线性、排序、散列F1RS1S、)户、 S=*.A题号91()参考 答案顺序、最后一个语句、 局部优化预测分析程序、NFTPEA 一2、沿有值说明:各个答案可有不同表达方式,只要意思相同即可。二、简述题参考答案(共20分,4个小题,每小题5分)1、第一步:将NFA确定化。用造表法将NFA确定化过程如下:(0)表的第0行和第0
7、列作标识行列的值。将占closure(作D为表中第1行第1列。假定=al, a2,an, 设第i行第一列已确定状态集为I,则置该行第i列为la, i 如lai未曾经在任何行第一列浮现过,则将lai加入下一空行i+1的第一列,并在第()列标记为 Ti+lo(3)反复重复第步,直至无新状态浮现为止。重新命名新状态。(3分)第二步:将DFA最小化。DFA最小化具体过程:用子集分割法将不含多余状态的DFA 分成一些不相交的子集,使得任何两个不同的子集中的状态都是可区别的,而相同子集中状 态是等价的。分割时,首先将DFA状态分成终态子集和非终态子集,再根据输出弧所达到 状态的性质逐步细分。(2分)2、(
8、1)静态存储分配的特点:编译时刻确定存储位置;访问效率高。主要用途:子程 序的目标代码段、全局数据目标(全局变量)。(2分)(2)栈(Stack)式存储分配的特点:嵌套调用次序、先进后出、生存期限于本次调用、 自动释放。用途:过程的局部环境、活动记录。(1分)(3)堆(Heap)式存储分配的特点:将内存空间分为若干块,根据用户要求分配;无法 满足时,调用无用单元采集程序将被释放的块采集起来重新分配。主要用途:用于动态数 据结构:存储空间的动态分配和释放。(2分)3、(1)逆波兰式:abc-*bd-/+:=。( 1 分)(2)三元式:(*,b,)d,_)竺为,)(+,,)(:=,,a)。(2分)
9、(3)四元式:G,d,_,t3)(/,b,t3 ,t4)(+,t2,t4,t5) (:= ,t5 ,_,a)o (2 分)4、(1)判别步骤:先画出各非终结符能否推导出的情况表;然后,用定义法或者关系 图法计算FIRST、FOLLOW集;再计算各规则的SELECT集;最后,根据同一个左部的规 则其SELECT集是否相交来判断给定文法是否为LL(1)文法。(3分)(2)将非LL(1)文法转换成LL(1)文法的两种主要方法:提取左公共因子、消除左递 归。(2分)三、应用题参考答案(共50分)1、( 1 )证明(3分):因为存在推导序列 S=aAS=aSbAS=aabAS=aabbaS=aabbaa
10、 , 即有S=*aabbaa成立,所以,是文法的一个句子。(2)语法树(3分):S /1 a1AsS bl A a4I /(3)句型分析(6分):将句型改点% ala2P示2a篇,则:该句型相对于S的短语: ala2blb2a3a4Ha4;相对于A的短语:a2blb2a3和b2a3;对于Sa的直接短语:a2, a4;相对于A-ba的直接短语:b2a3;句柄:a2。2、计算GE*1的FIRSTVT和LASTVT集如下:(5分)构造GE的算符优先关系表如下:(4分)5 不是LR(O)文法,由于GS1是SLR文法故一定是LR和LALR文法。(3分)编译原理课程测试试卷评分标准(数计学院04计科B卷)
11、一、填空题参考答案(共30分,30个空,每空1分)题号1234参考 答案中间代码生成、单词、 语义分析句子、非终结符号集和 终结符集、左部移进项目、AccB0、接受项目不惟一、优先矩 阵、优先函数题号5678参考 答案标识符、类型、作用 域和可视性、算符文法、多、算符优 先文法目标代码、已定位、 可重定位强连通、有且惟独 一个入口结点题号910参考答案符号a、状态j、归约得到的非终结符A、gotoS,a的值j全局变量、形参和实参说明:各个答案可有不同表达方式,只要意思相同即可。二、简述题参考答案(共20分,4个小题,每小题5分)1、运行目标程序时所需空间分为两种容纳目标代码的空间和目标代码运行
12、时的数据 空间。(2分)目标代码运行时的数据空间中某些部份无法在编译时确定存储位置,它主要包括: 用户所定义的变量和常量所需空间、中间结果及参数传递所需的暂时单元、调用过程时的连 接单元、I/O操作所需缓冲区。(3分)2、( 1)算符优先分析算法的步骤:(3分)设单元a中存放当前输入符,S为一个符号栈,则:1)将当前输入符存放到a中,将#入符号栈。2)将栈顶第一个终结符b与a比较。如果ga,而b=#且栈中只剩一个非终结符时,则成 功;否则a入栈;如果bta,则a入栈;如果ba,在栈顶寻觅最左素短语,并将最左素短语归约 为一个非终结符;如果文法中找不到相应规则,则出错;3)重复至成功或者失败。(
13、2)算符优先分析方法的优、缺点:(2分)由于只考虑终结符之间的优先关系确定句柄,所以效率高;由于去掉了单非终结符之间的归 约,有可能将错误的句子识别为正确的,只合用于表达式的语法分析。3、所谓优化实质上是对代码进行等价变换,使得变换后的代码运行结果与变换前的代 码运行结果相同,但运行速度或者占用的存储空间加大。(1分)代码优化按阶段分中间代码优化和目标代码优化,按程序范围分为局部基本块优化、循 环优化、全局优化。(2分)常用的优化技术有删除多余运算、代码外提、强度削弱、变换循环控制条件、合并已知 变量与复写传播等。(2分)4、判别任意给定的一个上下文无关文法GS是否为LALR(l)文法的过程:
14、(1)WG加入一条规则:S,SGS拓广为G此,然后构造G此的LR(0)项目集规范族DFA。 检查DFA的项目集中有无移进一归约冲突或者归约一归约冲突,若无,则GS是LR()文法, 也是LALR文法。(1分)(2)如果DFA的项目集中有无移进一归约冲突或者归约一归约冲突,通过考虑归约项 目左部非终结符的FOLLOW集能够解决这两类冲突,则GS,是SLR文法,也是LALR(l) 文法。(2分)(3)如果通过考虑归约项目左部非终结符的FOLLOW 集还有不能够解决的移进一归 约冲突,通过考虑后跟符号来构造GS,的LR(1)项目集规范族DFA。如果冲突可以解决,则 GS,是LR(1)文法。进一步合并L
15、R(1)项目集规范族中同心集,如果依然不产生归约一归约冲突, 则G是LALR(1)文法。(3分)三、应用题参考答案(共5()分)1、( 1 )证明(3分):因为存在推导序列:E=T+E=T+T+E=T+T*F+E=T+T*F+T =T+T*F+F=T+T*F+i ,即有 E=*T+T*F+i 成立,所以,T+T*F+i 是文法的一个句型。(2)语法树(3分):E(3)句型分析(7分):该句型相对牙E的短语:+T*F+i、T*F+i和i ;相对于T的短语有:T*F和i,相对于F的短语有i。相对于 接短语:i。句柄:T*F。F的直接短语:T*F,相对于F - i的直(4)该句型的所有素短语:T*F
16、和I; T*F为隈左素短悟。(3分)2、if ab or cf then s 1(1) if a bgoto (7)goto (3)(3) if c fgoto (7)(6) goto (p+1)式序列如下:(6分)S1对应的四元式序列(p) goto (q)(p+1) s2对应的四元式序列(q)3、(1)弋入后有S的规则右部(bS|b)|b(aS|aAa(bS|)|ba(S|)=(ab|ba)(S|),故对应的正规式 R=(ab|ba)(ab|b*a)。(3 分)bbA总化为DFA状态P11=S,P12=A , P13=B;A右图所示:和终态集已是最小化对应的NFA状态图如下左图所示:(3分
17、)将丽亳技(4)将所得 P2=Z;然后对1 的 DFA o (3 分)4、计算GE的SELECT集如下:(2分)SELECT(E - E T)=, (a) SELECT(E - T)=(, aSELECT(T -TA F)=, ( a SELECT(T 一 F)=(, aSELECT(F-(E =)( SELECT(F 一 a=)a 由于SELECT(E - E T)n SELECT(E一T)=, (a,; (pSELECT(T - T7 nSELECT(T-F尸(, a,; cpSELECT (F 一( E )0SELECT (F 一a) = (Aa =(p故GE不是LL(文法。(1分)对G
18、E的E - E T和T 一 T八F两条规则消除左递归后变为:(2分) E一TE E一TEKT - FT,T FT怛 F (E)|a计算消除左递归后GE的SELECT集如下:(2分)SELECT(ETE, (a SELECT(E,一 T E)=SELECT(E,一户, #)SELECT(T一FT尸(aSELECT(T,-AFT,)=A SELECT(F一(E )=(SELECT(T,-, #, )SELECT(F - a尸a由于 SELECT(ETE)nSELECT(E)彳pSELECT (T 一八 F T) ASELECT (T 一 & =(pSELECT (F 一( E )ASELECT (
19、F 一a) = =(p故消除左递归后的GE是LL(文法。(1分)(2)根据消除左递归后的G闾的SELECT集构造预测分析表如下:(3分)步费分析板利输入申I 所用规则1a-aAa#I ETE2*E*Ta-a Aa#TTT*3#ETFa-aAa#Fa4#ETaa-aAa# |匹配a5*GT-aAa#T* -* 6#E-aAa#E-TT7#ET-aAa#匹8#EtTaAa#T-*PT*9*ETFaAa#F -*a10#ETaaAa#匹配a11#ETT 一什12#ETFAAa#匹配.13#ETtFa#F-*a14#ETaa*匹配a意k规则存部以浮序入栈户(5分)T-16#e,E* i s17*#成功
20、接受S 一 aAS|aA - SbA|SS|ba(1)证明aabbaa是文法的一个句子。(3分)构造句子aabbaa的语法树。(3分)指出该句子的所有短语、直接短语和句柄。(6分)2、对文法GE:(15分)ETE# E 一E+T|T T 一T*F|F F -PAF|P P 一 (E)|i计算 GE的 FIRSTVT 和 LASTVT。(5 分)构造GE的算符优先关系表,并说明G旧是否为算符优先文法。(5分)(3)给出输入串w=i+i#的算符优先分析过程。(5分)3、对以下基本块:(8分)A:=5 B: =R+r TO:=A+BTl: =2*AT2:=B+AT3: =A+A XI: =T1+T2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理 试题及答案 编译 原理 试题 答案
限制150内