




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理总复习-07级第一章编译程序的概述(一)内容本章介绍编译程序在计算机科学中的地位和作用,介绍编译技术的发展历史,讲解编译程序、解释程序的基本概念,概述编译过程,介绍编译程序的逻辑结构和编译程序的组织形式等。(二)本章重点编译(程序),解释(程序),编译程序的逻辑结构。(三)本章难点编译程序的生成。(四)本章考点全部基本概念。编译程序的逻辑结构。(五)学习指导引论部分主要是解释什么是编译程序以及编译的总体过程。因此学习时要对以下几个点进行重点学习:翻译、编译、目标语言和源语言这几个概念的理解;编译的总体过程:词法分析,语法分析、语义分析与中间代码的生成、代码优化、目标代码的生成,以及伴随着整个过程的表格管理与出错处理。第三章文法和语言课外训练(一)内容本章是编译原理课程的理论基础,主要介绍与课程相关的形式语言的基本概念,包括符号串的基本概念和术语、文法和语言的形式定义、推导与归约、句子和句型、语法分析树和二义性文法等定义、文法和语言的Chomsky分类。(二)本章重点上下文无关文法,推导,句子和句型,文法生成的语言,语法分析树和二义性文法。(三)本章难点上下文无关文法,语法分析树,文法的分类。(四)本章考点上下文无关文法的定义。符号串的推导。语法分析树的构造。(五)学习指导要构造编译程序,就要把源语言用某种方式进行定义和描述。学习高级语言的语法描述是学习编译原理的基础。上下文无关文法及语法树是本章学习的重点。语法与语义的概念;程序的在逻辑上的层次结构;文法的定义,文法是一个四元组:终结符号集,非终结符号集,开始符号、产生式集;与文法相关的概念,字符,正则闭包,积(连接),或,空集,产生式,推导,直接推导,句子,句型,语言,最左推导,最右推导(规范推导);学会用文法来描述语言及通过文法能分析该文法所描述的语言;语法树及二义性的概念、能通过画语法树来分析一个文法描述的语言是否具有二义性;上下文无关文法的定义和正规文法的定义,能判断一个语言的文法是哪一类文法。附训练试题:1: 试构造生成语言L=anbnci|n1, i 0的文法解:2: 已知语言L=anbbn| n 1, 写出产生L的文法。3: 已知文法G=(A,B,C,a,b,c,A,P)其中产生式P由以下组成: A abc A aBbc BbbB Bc Cbcc bC Cb aC aaB aC aa 问:此文法表式的语言是什么?4 请给出描述语言=a2m+1 b m+1 | m=0a2m b m+2| m=0的文法5已知文法GS为: SdAB AaA|a BBb |GS产生的语言是什么?GS能否改写为等价的正则文法?6:试写一文法,使其描述的语言L(G) 是能被5整除的整数集合。7: 已知语言L=x | xa,b,c*,且x重复排列是对称的(aabcbaa,aabbaa,等) 写出该语言的文法。第四章 词法分析课外训练(一)内容本章介绍编译程序的第一个阶段词法分析的设计原理和设计方法,包括源程序输入与词法分析程序输出、正则文法及其状态转换图、确定的有限自动机(DFA)、 不确定的有限自动机(NFA)、正则表达式与正规集。(二)本章重点词法分析器的逻辑结构与功能,状态转换图,正规表达式与正规集、DFA、NFA及其等价转换,NFA的确定化,DFA的最小化。(三)本章难点正则式与自动机的应用,NFA的确定化,DFA的最小化。(四)本章考点正规式到NFA的转换。NFA的确定化。DFA的最小化。(五)学习指导掌握正规文法、状态转换图、DFA、NFA、正规表达式和正规集的基本概念和词法分析器的设计与程序编写。词法分析的任务是对源语言所编写的代码进行从左到右的扫描,产生一个个的单词符号(token),由这些单词符号形成的中间程序是后续语法分析输入。在理论上词法分析器的构造是根据一种语言的正规文法描述形成相应的状态转换图(DFA),若输入字符串能够被该DFA接受,则认为当前输入是语言中的一个单词符号。因此,DFA的构造是本章学习的重点。附训练试题:1写出能被5整除的十进制整数的文法及正规表达式。2:已知有限自动机如图(1)以上状态转换图表示的语言有什么特征?(2)写出其正规式与正规文法.(3)构造识别该语言的确定有限自动机DFA.3请构造与正规式R=(a*b)*ba(a|b)* 等价的状态最少的DFA(确定有限自动机)4设字符集= a, b ,请写出不以a开头的但以aa结尾的字符串集合的正规表达式,并构造与之等价的状态最少的DFA。第五章自顶而下语法分析方法课外训练(一)内容本章介绍编译程序的第二个阶段语法分析的第一种设计方法和实现原理即自上而下分析的原理及无回朔的递归下降分析、 LL(1)分析法和相应程序构造。(二)本章重点自上而下分析的思想,LL(1)文法,LL(1)预测分析,递归下降分析程序的构造。(三)本章难点消除左递归,预测分析表的构造,求First集和Follow集,预测分析中的出错处理。(四)本章考点LL(1)文法的判定。递归下降分析程序的构造。预测分析程序的构造与分析方法。(五)学习指导理解自上而下分析面临的问题,理解递归下降分析、LL(1)文法,掌握无回朔的递归下降分析方法的设计和程序实现、LL(1)分析表的构造与分析方法。语法分析是在词法分析的基础上判定程序的语法结构是否符合语法规则的过程。词法分析器的构造技术是编译器的主要技术。词法分析分为自上而下的分析(LL(K)和自下而上的分析(算符优先、LR(K)。本章先学习在逻辑概念上易于接受的自上而下的分析,即从文法开始符号出发,自上而下地为输入串建立一棵语法树,或者说为输入串寻找一个最左推导。LL(1)分析法是本章的学习重点。附训练试题:1试构造与下列文法GS等价的无左递归文法。 GS: SSa|Nb|c (1) N Sd|Ne|f 2:文法G的规则集为; P begin d : X end X d : X | sY Y: sY | e做出该文法LL(1)分析表。3 设有以下文法:GS: SeEfGh | g EFSG | h FSEc | cG | GSh |(1) 求出该文法每一个非终结符的FOLLOW集。(2) 它是LL(1)文法吗?为什么?4:给出语言L=1na0n1ma0m|n0, m=0 的LL(1)文法GS并说明其理由。 5 设有文法:GS: SaBc | bAB AaAb | b Bb | 构造其LL(1)分析表,并分析符号串baabbb是否是该文发的句子。 6将GV改造为LL(1)文法 GV : VN | NE EV | V+E Ni7有文法GS: S BA ABS | d BaA | bS | c (1)证明文法为LL(1)文法。 (2)构造LL(1)分析表。 (3)写出句子adccd的分析过程8 考虑下面文法G1:Sa| (T)TT, S | S(1) 消去G1的左递归。然后对每一个非终结符,写出不带回溯的递归子程序。(2) 经改写后的文法是否是LL(1)文法?给出它的预测分析表。9下面文法中那些是LL(1)文法,说明理由。(1) 1、 SAbc 2、 Aa| 3、 Bb|(2) SAb Aa | B| Bb | (3)S ABBA Aa | B b | (4) SaSe |B BbBe | C Cc Ce | d第六章 自底而上优先分析法课外训练(一)内容本章介绍编译程序的第二个阶段语法分析的第二种设计方法和实现原理即自下而上分析的原理,包括一些基本概念、简单优先分析法、算符优先分析法。(二)本章重点自下而上分析的思想,算符优先文法及其分析。(三)本章难点句柄的定义,优先关系的定义,求FIRSTVT集和LASTVT集,优先分析表的构造(四)本章考点基本概念的定义(短语、直接短语、句柄、最左素短语、规范归约等)。算符优先分析法。(五)学习指导理解最左素短语的基本概念;掌握算符优先分析方法。自下而上分析法就是从输入串开始,逐步进行“归约”,直至归约到文法的开始符号,从输入串的语法树上直观地看就是沿着语法树的底部向上分析归约,最终能到达根结点的就认为当前的输入串能被接受。算符优先分析(OPG)是自下而上分析中针对运算表达式较为常用的易于理解的分析算法。附训练试题:1已知文法GS为算符优先文法,其规则为: SSaF|F F FbP|P P c|d 求优先关系表2 对下列文法G: S #S# P S|i S D(R) D i R R; P|P 求:出每个非终结符的FIRSTVT集和LASTVT集,并构造算符优先关系矩阵。3 考虑下面文法G2: S a| | (T) T T, S | S(1)给出(a,(a, a)) 和(a,a), ,(a),a)的最左和最右推导。(2)给出串(a, (a, a))的算符优先分析过程。第七章 LR分析法课外训练(一)内容本章介绍编译程序的第二个阶段语法分析的第二种设计方法和实现原理即自下而上分析的原理,包括一些基本概念、LR分析法。(二)本章重点自下而上分析的思想,LR分析器逻辑结构和功能,LR(0)文法及其分析、SLR(1)文法及其分析、LR(1)、LALR(1) 文法及其分析。(三)本章难点句柄的定义,LR项目及活前缀识别自动机,四种LR文法的差别。(四)本章考点基本概念的定义(短语、直接短语、句柄、规范归约等)。LR(0)、SLR(1)分析。(五)学习指导理解有效项目的基本概念;掌握LR(0)、SLR(1)文法的判断及LR(0)、SLR(1)分析表的构造与分析方法。自下而上分析法就是从输入串开始,逐步进行“归约”,直至归约到文法的开始符号,从输入串的语法树上直观地看就是沿着语法树的底部向上分析归约,最终能到达根结点的就认为当前的输入串能被接受。大部分现代的编译器都采用LR分析作为语法分析的方式。因此本章的学习重点是学习如何构造LR分析表。OPG分析可以作为自下而上分析算法的切入点要求重点掌握。附训练试题:1、1对于文法GS S ( L) | aS |a L L, S | S(1)画出句型( S ,(a)的语法树(2)写出上述句型的所有短语, 直接短语, 句柄. 2、222 设有文法GS: SL=R S R L *R L i R L为构造拓广文法,增加新的非终结符S,得到规则S S,则: closure ( S .S, # )=_3、43、设文法G(S) SA A aA | b构造识别文法G(S)的所有活前缀的DFA.4、4、求文法 (1) SA (2) A aA (3)A b LR(0)分析表:5、5、55设文法G,试构造G的LR(0)分析表G: 1) SCC 2) C cC 3) C d6、6、66对于文法AaA|a构造SLR(1)分析表7、7、77、设有文法G(S)为 1) SS 2) S L=R 3) S R 4) L *R 5) L i 6) R L 构造文法G(S)的LR(1)分析表:8、8、8888设有文法G(A) 1) A A 2) A BB 3) B aB4) B b构造LALR(1)分析表第八章语法制导翻译和中间代码的生成课外训练(一)自学内容本章内容围绕语义分析展开,主要介绍属性文法,语法制导翻译与翻译模式的计算,抽象语法树、带注释的语法树。语义分析及中间代码生成的设计原理和实现方法,包括语法制导翻译的具体实现、中间代码的形式,可执行语句和说明语句的语法制导翻译方法。(二)本章重点属性文法、后缀式和四元式中间代码表示,简单算术表达式和赋值语句的翻译,布尔表达式及控制语句的翻译,数组元素的处理,过程语句的翻译。(三)本章难点抽象语法树,属性的作用及计算,语法制导翻译。布尔表达式的翻译,数组元素的处理。(四)本章考点语法制导翻译定义。中间语言表示(后缀式和三地址代码)。赋值语句的翻译。布尔表达式及控制语句的翻译。(五)学习指导要求理解属性的引入、两种属性的计算原则,掌握S属性的计算方法,掌握L属性翻译模式的计算(递归下降分析),继承属性计算的四种方法。本章介绍属性文法的基本概念和基于属性文法的处理方法,讨论如何在自上而下分析和自下而上分析中实现属性的计算。本章的学习重点以掌握属性文法及语法制导翻译的概念为主,分析中属性的计算作为了解。理解语法制导翻译、语义动作的基本概念;掌握算术表达式和赋值语句到中间代码的翻译、布尔表达式和几种控制语句的目标代码结构分析和到四元式的语法制导翻译;说明语句的语法制导翻译。本章是将上一章介绍的属性文法和语法制导翻译的方法和技术应用于语义分析和中间代码的产生。本章的学习重点为:掌握各种中间代码的形式,包括后缀式、三元式、四元式等;了解常用语法结构单元的语义表达形式,包括说明语句,赋值语句,布尔表达式,控制语句,过程调用。附训练试题:11 1、在一个移入归约的分析中采用以下的语法制导的翻译模式,在某产生式归约时,立即执行括号中的动作。 AaB print “0” Ac print “1” BAb print “2” 当分析器输入为aacbb时,打印的字符串是什么?2、下列文法由开始符S产生一个二进制数,令综合属性val给出该数的值: SL .L| L LLB | B B0 | 1 试设计求S.val 的属性文法,其中,已知B的综合属性,给出由B产生的二进位的结果值。如输入101。101时,输出S.val=5.625。3、3 3、设有文法GS: S(L) | a LL , S | S给此文法配上语义动作子程序(或者说为此文法写出一个语法制导定义),使其输出配对括号的个数,如对于句子(a, (a, a),输出是2。4、 4、给出文法GS: SSaA | A AAbB | B BcSd | e 1) 请证实 AacAbcBaAdbed 是文法的一个句型。 2)写出该句型的短语、直接短语、以及句柄。 3)为文法GS每个产生式写出相应的翻译语义动作,使句型AacAbcBaAdbed经该翻译方案后,输出131042521430。5、写出下列各式的逆波兰表示 (1) -a-(b*c/(c-d) + (-b)*a) (2) -A+B*C (D/E)/F6、6、写出表达式 A+B*(C-D)-E/FG 逆波兰表示, 三元组表示, 四元组表示。7、7、写出当型语句 WHILE x+y 3 DO a:= a+3*b; b:= a + e f*e 该语句的四元式形式为:8、写出条件语句 IF a0 THEN x:=x+1 ELSE x:=4*( x- 1) 四元式序列9、9、把语句: if ABD then S1 else S2 翻译成四元式序列。第十章 目标程序运行时存储空间组织课外训练(一)内容本章介绍目标程序运行时的存储组织方式,包括静态存储分配和动态存储分配。(二)本章重点静态存储分配,栈式存储分配,嵌套过程的存储实现。(三)本章难点嵌套过程的存储实现。(四)本章考点目标程序运行时存储空间的划分。活动记录的内容。嵌套过程的存储实现(DISPLAY表的使用)。(五)学习指导要求掌握各种存储组织形式的基本方法。在编译过程生成目标代码之前,需要把程序静态的正文和实现这个程序的动行的活动联系起来,弄清楚将来在代码运行时刻,源代码中的各种变量、常量等用户定义的量是如何存放的,如何去访问它们。本章就目标程序运行时的活动和运行环境进行讨论,主要讨论存储组织与管理,包括活动记录的建立与管理、存储器的组织与存储分配策略、非局部名称的访问。附训练试题:1 在编译过程中,嵌套调用的过程之间寻址问题如何解决?下面是一个示意性源程序,请给出编译期间栈式符号表的变化情况。 PROGRAM main a=10; b,c: integer; d,e: real; PROCEDURE p ( x:real ); f:real
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年美容师岗位职业技能资格知识考试题库与答案
- 2025春季学期国开河南电大本科补修课《财务管理#》一平台无纸化考试(作业练习+我要考试)试题及答案
- 地铁公司内部培训体系构建
- 职业健康检查培训
- 员工安全职责培训
- 幼儿教师职责培训
- 带教老师培训课件
- 转运老人协议书范本
- 运营服务类合同协议
- 迎合作协议书范本
- 2025攀枝花辅警考试题库
- 农产品跨境贸易合作协议方案书
- 2024人教版七年级英语下册Unit8 每课时分层练习(含答案)
- 人教部编版六年级下册语文【选择题】专项复习训练真题100题(附答案解析)
- 肾动脉狭窄介入护理
- 2025年人教部编版语文小学二年级下册期中测试题附答案(一)
- 《合成抗菌材料》课件
- 赴远(2024年山东东营中考语文试卷记叙文阅读试题)
- 2025山东能源集团中级人才库选拔易考易错模拟试题(共500题)试卷后附参考答案
- 家长法制安全教育
- 第四单元 社会争议解决(大单元说课稿)高二政治同步备课系列(统编版选择性必修2)
评论
0/150
提交评论