四川大学编译原理期末试卷4套+复习资料(共7页)

上传人:9** 文档编号:49537282 上传时间:2022-01-18 格式:DOC 页数:7 大小:31KB
收藏 版权申诉 举报 下载
四川大学编译原理期末试卷4套+复习资料(共7页)_第1页
第1页 / 共7页
四川大学编译原理期末试卷4套+复习资料(共7页)_第2页
第2页 / 共7页
四川大学编译原理期末试卷4套+复习资料(共7页)_第3页
第3页 / 共7页
资源描述:

《四川大学编译原理期末试卷4套+复习资料(共7页)》由会员分享,可在线阅读,更多相关《四川大学编译原理期末试卷4套+复习资料(共7页)(7页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上四川大学期末考试试题A(闭卷)(2012-2013学年第2学期)一简答题1.符号表的作用是什么?为了达到对其插入删除等操作的复杂度为O(1),需将其组织成什么数据结构。2.分析树和语法书的区别。3.什么是正规集。4.什么叫句子,什么叫句型。5.二义文法一定不是LL(1)二给定文法SAAA+A|B+By1. 画出句子y+y+的分析树2.给出句子y+y+的最右推导三给定正则表达式(a|b)*abb1.使用thompson构造法构造等价的NFA。2.用子集法对(1)得到的NFA进行确定化和最小化,得到等价的最小DFA。3.使用双层多分支语句实现(2)得到的DFA。写出伪代码

2、。四给定文法statementif-stmt|other|eif-stmtif(exp)statementelse-partelse-partelsestatement|eexp0|1写出递归下降子程序的伪代码。5 给定文法SSX|aXe|+SY|YbYe|-SXc1. 对文法中的每一个非终结符构造First集和Follow集。2.构造LL(1)分析表3.基于分析表,使用LL(1)对句子a+a-ac进行自顶向下的语法分析,给出每一步的动作及分析栈和输入串的变化情况。六给定文法EE+T|TTT*F|FF(E)|id1.构造LR(0)项目的DFA:2.构造SLR(1)的分析表3.利用2得到的分析表

3、对id+id*id进行自顶向下的语法分析。七1.给出构造Follow集合的算法描述2.给出SLR(1)算法的描述四川大学期末考试试题(闭卷)(2010-2011学年第2学期)1.简答题(12分)(1)编译器的前端和后端分别包括哪几个阶段?前后端分开有什么好处?(2)解释器和编译器有什么本质区别?(3)词法分析和语法分析的功能分别是什么?(4)分析树与抽象语法树有什么不同?2.已知字母表 = a, b, c,定义在上的语言L具有以下特征:(5分)(1)若出现a,则其后至少紧跟两个c;(2)若出现b,则其后至少紧跟一个c。试给出可以产生语言L的正规表达式。3.文法如下:(8分)expexp add

4、opterm |termaddop +|-termtermmulopfactor| factormulop *factor (exp)|number(1) 给出句子3*)58(+的最左推导;(2)构造(1)中句子的抽象语法树。4.文法如下:(10分)expexp andexp|exporexp|not exp|(exp)|TRUE|FALSE(1)此文法是否为二义文法?为什么?(2)试将文法改写为非二义文法,要求运算符优先级由低到高分别是or、and、not,且and和or是左结合的,not是右结合的。5.DFA构造题(20分)已知正规表达式bbca*)|(1)使用Thompson构造方法构造

5、对应的NFA;(2)用子集构造法将得到的NFA确定化为DFA;(3)将得到的DFA最小化。6.LL(1)分析题(20分)文法如下:A Pa P bPa|bQb Q Qa|a(1)消除文法左递归,提左因子;(2)为所得文法的每个非终结符构造First集和Follow集;(3)所得文法是LL(1)文法吗?为什么?(4)构造所得文法的LL(1)分析表。7.LR(k)分析题(25分)文法如下:declaration type list-vartype int|floatvar -list id,var -list|id(1)构造文法的LR(0)项目的DFA;(2)构造SLR(1)分析表;(3)这个文法

6、是SLR(1)文法吗?如果不是,请说明原因;(4)给出对应输入串intx,y,z进行SLR(1)分析的步骤(要求给出分析过程中每一步的详细情况,包括:分析栈、输出串及执行的动作)。四川大学期末考试试题A(闭卷)(2008-2009学年第2学期)一、简答题(本大题共4小题,每小题3分,共12分)1.按照次序写出一个完整的编译器的各个阶段以及各个阶段的输入输出。2.一个文法必须满足哪些条件才是LL(1)的?3.给出上下文无关文法(Context-Free Grammar)的定义。4.写正规表达式:所有不以0开头的十进制偶数的集合。二、算法题(本答题共1小题,每小题8分,共8分)给出基于DFA进行词

7、法分析的表驱动的实现算法。3、 分析题(本答题共3小题,每小题分数见题首,共10分)文法如下:SSS+|SS*|a+1.(4分)给出句子aa+a*的最右推导;2.(3分)构造(1)中句子的分析树;3.(3分)这个文法产生的语言是什么?4、 文法二义性分析题(本大题共2小题,每小题5分,共10分)文法如下:expexp opexp|(exp)|TRUE |FALSEOp and|or1.此文法是否为二义文法?为什么?2.试将文法改写成非二义文法,要求运算符op是左结合的,且and的优先级高于or的优先级。5、 DFA构造题(本大题共3小题,每小题分数见题首,共20分)6、已知正规表达式(a|b)

8、*c*b1.(6分)使用Thompson构造方法构造对应的NFA;2.(8分)用子集构造法将得到的NFA确定化为DFA;3.(6分)将得到的DFA最小化。六、LL(1)分析题(本大题共4小题,每小题5分,共20分)文法如下:SSLS |aLbbL|b1.消除文法左递归,并提左因子;2.为所得文法的每个非终结符构造First集和Follow集;3.构造所得文法的LL(1)分析表;4.所得文法是LL(1)文法吗?为什么?七、LR(k)分析题(本大题共3小题,每小题分数见题首,共20分)文法如下:S(A)|bBAa|aBBA a b1.(10分)构造文法的LR(0)项目的DFA;2.(6分)构造SL

9、R(1)分析表;3.(4分)这个文法是SLR(1)文法吗?请说明是或不是的原因。四川大学期末考试试题A(闭卷)(2007-2008学年第2学期)1.(9分)简答题(1)编译器的前端和后端分别包括哪几个阶段?前后端分开有什么好处?(2)在建立LL(1)语法分析器的时候,提左因子和消除左递归的目的分别是什么?(3)词法分析和语法分析的功能分别是什么?2.(5分)已知字母表=a,b,c,定义在上的语言L具有以下特征:(1)若出现a,则其后至少紧跟两个c;(2)若出现b,则其后至少紧跟一个c。试给出可以产生语言L的正规表达式。3.(6分)文法如下,S(L)|a LL,S|S(1) 证明句子(a,(a,

10、a)可以由此文法产生;(2)构造(1)中句子的分析树。4. (5分)构造如下文法的递归下降分析程序(recursive-descentparser)SbSa|b5. (10分)文法如下,ExpExpOpExp|(Exp)|numberOp+|-|*(1)此文法是否为二义文法?为什么?(2)试将文法改写为非二义文法,其中要求运算符Op是左结合的,且*的优先级高于+、-的优先级。6. (20分)已知正规表达式)(a|ba)*(b|a)(1) 使用Thompson构造方法构造对应的NFA;(2)用子集构造法将得到的NFA确定化为DFA;(3)将得到的DFA最小化。7. (25分)文法如下,S(L)|

11、a LL,S|S(1)消除文法左递归;(2)为所得文法的每个非终结符构造First集和Follow集;(3)所得文法是LL(1)文法吗?为什么?(4)构造所得文法的LL(1)分析表;(5)写出对输入串)(,(aa进行LL(1)分析的过程。8.(20分)文法如下,declaration type list-vartype int|floatvar -list id,var -list|id(1)构造文法的LR(0)项目的DFA;(10分)(2)构造SLR(1)分析表;(6分)(3)这个文法是SLR(1)文法吗?如果不是,请说明原因;(4分)1.编译的各个阶段扫描程序(scanner)在这个阶段编

12、译器实际阅读源程序(通常以字符流的形式表示)。扫描程序执行词法分析(Lexicalanalysis):它将字符序列收集到称作记号(token)的有意义单元中,记号同自然语言,如英语中的字词相似。语法分析程序(parser)语法分析程序从扫描程序中获取记号形式的源代码,并完成定义程序结构的语法分析(syntaxanalysis),这与自然语言中句子的语法分析类似。语法分析定义了程序的结构元素及其关系。通常将语法分析的结果表示为分析树(parsetree)或语法树(syntaxtree)。语义分析程序(semanticanalyzer)分析程序的静态语义,包括包括声明和类型检查。源代码优化程序(s

13、ourcecodeoptimizer),代码生成器(codegenerator),目标代码优化程序(targetcodeoptimizer)2.编译器的前端(frontend),后端(backend),遍(passes)扫描程序、分析程序和语义分析程序是前端,代码生成器是后端。编译器发现,在生成代码之前多次处理整个源程序很方便。这些重复就是遍(pass)3.编译器,汇编器和解释器之间的区别解释程序是如同编译器的一种语言翻译程序。它与编译器的不同之处在于:它立即执行源程序而不是生成在翻译完成之后才执行的目标代码。汇编程序是用于特定计算机上的汇编语言的翻译程序。有时,编译器会生成汇编语言以作为其目

14、标语言,然后再由一个汇编程序将它翻译成目标代码。4.扫描,分析(语法,词法)的任务扫描的任务是将源程序读作字符文件并将其分为若干个记号扫描程序的任务是从源代码中读取字符并形成由编译器的以后部分(通常是分析程序)处理的逻辑单元。由扫描程序生成的逻辑单元称作记号(token)分析的任务是确定程序的语法,或称作结构分析程序的任务是从由扫描程序产生的记号中确定程序的语法结构,以及或隐式或显式地构造出表示该结构的分析树或语法树5.上下文无关文法,最左推导,BNF,EBNF,乔姆斯基文法层次上下文无关文法说明程序设计语言的语法结构,利用了与正则表达式中极为类似的命名惯例和运算。二者的主要区别在于上下文无关

15、文法的规则是递归的(recursive)最左推导(leftmostderivation)是指它的每一步中最左的非终结符都要被替换的推导最右推导(rightmostderivation)则是指它的每一步中最右的非终结符都要被替换的推导。最左推导和与其相关的分析树的内部节点的前序编号相对应;而最右推导则和后序编号相对应最左推导的一个例子:书p73相关题目:3.3EBNF中注意重复和可选的表示方法,语法图6.句子,句型,文法所定义的语言,分析树,抽象语法树7.自顶向下,自底向上语法分析自顶向下(top-down)的分析算法通过在最左推导中描述出各个步骤来分析记号串输入。之所以称这样的算法为自顶向下是

16、由于分析树隐含的编号是一个前序编号,而且其顺序是由根到叶。分为两类:回溯分析程序(backtrackingparser)和预测分析程序(predictiveparser)自底向上的分析程序有两种可能的动作(除“接受”之外):1)将终结符从输入的开头移进到栈的顶部。2)假设有BNF选择Aa,将栈顶部的串a归约为非终结符A。8.为什么要解决公因子,左递归当有公因子存在时,不能立即区分出文法规则右边的选择当有左递归时,将导致一个无限循环。9.写正则表达式,构造NFA,DFA,最小化(按照算法做)构造NFA(使用Thompson结构):书P45-47将NFA转换成DFA(最小子集法):-闭包(-clo

17、sure)是可由转换从某状态或某些状态达到的所有状态集合,它总是包含状态本身子集构造:参见Chapter_two(2).ppt相关题目:2.1,2.12,2.1610.写最左推导,最右推导,画分析树和抽象语法树相关题目:3.311.写出给定程序的语法树,抽象语法树相关题目:3.312.说明文法有二义性可生成带有两个不同分析树的串的文法称作二义性文法(ambiguousgrammar)相关题目:3.213.写出给定程序的递归下降分析程序(可能用伪代码,C程序),构造语法树注意事项:在处理产生式A时,可以忽略,或者使用A的Follow集合。不要试图去匹配(不然要被拉去登记的)相关题目:4.2,4.

18、3,4.414. 给定文法:消除左递归,提取公因子,求FirstSet,FollowSet,说明是否是LL(1)文法,构造LL(1)分析表,给出一个输入分析的动作 相关题目:4.7,4.8,4.1015.给定文法:求LR(0)的DFA,构造LR(0)和SLR(1)的分析表,说明是否是LR(0)或SLR(1)文法(描述冲突),给定一个输入,写出LR(0),SLR(1)的分析步骤相关题目:5.1,5.316.算法(写伪代码)3种DFA代码,LL(1)算法,LR(0)算法,SLR(1)算法,消左递归,提公因子,构造First,Follow集合DFA代码(英文书P63,中文P42)LL(1)算法(英文书P155,中文P115)LR(0)算法(英文书P207,中文P158)SLR(1)算法(英文书P210,中文P160)左递归(英文书P159,中文P119)公因子(英文书P164,中文P122)构造FirstSet(英文书P168,中文P126)构造FollowSet(英文书P173,中文P130)参见书本专心-专注-专业

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!