ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:914.89KB ,
资源ID:1841110      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1841110.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《编译原理》复习要点.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《编译原理》复习要点.docx

1、编译原理复习要点考试安排:7月13日(20周周三),15:00-17:00,20208填空10X1分、选择10X2分、简答4X5分、大题5X10分考试大题:循环优化 LL(1).定义之类的 算符优先算法 自下而上分析法(20分,选择、填空、大题)第一章 引论一编译程序(compiler):把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机器语言程序)的程序二编译程序的工作的五个阶段:词法分析、语法分析、中间代码产生、优化、目标代码产生1. 词法分析任务: 输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词符号。依循的原则:构词规则描述工具:有限自动机FOR I :

2、= 1 TO 100 DO保留字 标识符 等符 整常数 保留字 整常数 保留字2. 语法分析任务:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位。依循的原则:语法规则述工具:上下文无关文法3. 语义分析与中间代码产生任务:对各类不同语法范畴按语言的语义进行初步翻译。(变量是否定义、类型是否正确等)依循的原则:语义规则中间代码:三元式,四元式,逆波兰记号,树形结构等。是一种独立于具体硬件的记号系统。例:将Z:=X + 0.618 * Y 翻译成四元式为 (1) * 0.618 Y T1 (2) + X T1 T2 (3) := T2 _ Z4. 优化任务:对于前阶段产生的中

3、间代码进行加工变换,以期在最后阶段产生更高效的目标代码。依循的原则:程序的等价变换规则FOR K:=1 TO 100 DO BEGIN M := I + 10 * K; N := J + 10 * K; END4. 目标代码产生任务: 把中间代码变换成特定机器上的目标代码。依赖于硬件系统结构和机器指令的含义目标代码三种形式:a) 绝对指令代码: 可直接运行 b) 可重新定位指令代码: 需要连接装配c) 汇编指令代码: 需要进行汇编三. 编译程序结构 编译程序总框 (简答题5分)第二章 高级语言及其语法描述2.1.1语法词法规则:单词符号的形成规则。a) 单词符号是语言中具有独立意义的最基本结构

4、。一般包括:常数、标识符、基本字、算符、界符等。b) 描述工具:正规式和有限自动机语法规则:语法单位的形成规则。a) 语法单位通常包括:表达式、语句、分程序、过程、函数、程序等;c) 描述工具:上下文无关文法2.1.2语义语义:一组规则,用它可以定义一个程序的意义。描述方法:a) 自然语言描述:隐藏错误、二义性和不完整性b) 形式描述: 无二义性 完整性多数语言中,算符的优先顺序如下: 乘幂(*或) 优先级由高自低一元负(-) 乘、除 加、减 不同的语言对算符优先级的规定有差异,甚至差异很大!关系符(,=,) 非(,not) 与(,&,and ) 或(,|,or,) 隐含( 或imp) 等值(

5、 或epui,或 )2.3 程序语言的语法描述1. 几个概念:a) 考虑一个有穷 字母表 字符集b) 其中每一个元素称为一个字符c) 上的字(也叫字符串) 是指由中的字符所构成的一个有穷序列d) 不包含任何字符的序列称为空字,记为e) 用*表示上的所有字的全体,包含空字例如: 设 =a, b,则 *=,a,b,aa,ab,ba,bb,aaa,.f) *的子集U和V的连接(积)定义为UV b | U & bV 例如: 设:U a, aa ,V b, bb 那么:UV= ab, abb, aab, aabb g) V自身的 n次积记为Vn=VVVh) 规定V0=,令V*=V0V1V2V3 称V*是

6、V的闭包;记 VVV* ,称V+是V的正规闭包。例如: 设:U a, aa 那么:U* = , a, aa, aaa, aaaa, U = a, aa, aaa, aaaa, i) 0型(短语文法,图灵机): 产生式形如: 其中: (VT VN)*且至少含有一个非终结符; (VT VN)* 任何0型语言都是递归可枚举的。j) 1型(上下文有关文法,线性界限自动机): 产生式形如: 其中:| |,仅 S 例外。意味着对非终结符进行替换时务必考虑上下文,并且,一般不允许替换成空串 。k) 2型(上下文无关文法,非确定下推自动机): 产生式形如: A 其中:A VN; (VT VN)*。非终结符的替

7、换可以不必考虑上下文。l) 3型(正规文法,有限自动机):右线性文法 产生式形如: A B 或 A 其中: VT*;A,BVN左线性文法 产生式形如: A B 或 A 其中: VT*;A,BVN正规文法的能力要比上下文无关文法弱得多。四种类型描述能力比较 m) 上下文无关文法的定义: 一个上下文无关文法G是一个四元式 G=(VT,VN,S,P),其中VT:终结符集合(非空)VN:非终结符集合(非空),且VT VN=S:文法的开始符号,SVNP:产生式集合(有限),每个产生式形式为P, PVN, (VT VN)*开始符S至少必须在某个产生式的左部出现一次。例:文法G1(A): A c|AbG1(

8、A)的语言?解:L(G1)=c,cb,cbb,以c开头,后继若干个bn) 定义:如果一个文法存在某个句子对应两颗不同的语法树,则说这个文法是二义的。G(E): E i|E+E|E*E|(E) 是二义文法。o) 语言的二义性:一个语言是二义性的,如果对它不存在无二义性的文法。可能存在G和G,一个为二义的,一个为无二义的。但L(G)=L(G) 2. 状态转换图 a) 概念:状态转换图是一张有限方向图。b) 结点代表状态,用圆圈表示。c) 状态之间用箭弧连结,箭弧上的标记(字符)代表射出结状态下可能出现的输入字符或字符类。d) 一张转换图只包含有限个状态,其中有一个为初态,至少要有一个终态3. 正规

9、运算符优先顺序在不致混淆时,括号可以省去,但规定算符的优先顺序为:*(闭包) .(连接) |(或)4. 3型文法-正规式 G的任何产生式为 A B 或 A 其中: VT*;A,BVN 3型文法等价于正规式,所以也称正规文法。3.3.2 确定有限自动机(DFA)对状态图进行形式化,则可以下定义:自动机M是一个五元式M=(S, , f, S0, F),其中:a) S: 有穷状态集,b) :输入字母表(有穷),c) f: 状态转换函数,为SS的单值部分映射,f(s,a)=s表示:当现行状态为s,输入字符为a时,将状态转换到下一状态s。我们把s称为s的一个后继状态。d) S0S是唯一的一个初态; e)

10、 FS :终态集(可空)。例如:DFA M=(0,1,2,3,a,b,f,0,3), 其中:f定义如下:f(0,a)=1 f(0,b)=2f(1,a)=3 f(1,b)=2f(2,a)=1 f(2,b)=3f(3,a)=3 f(3,b)=3 3.3.3 非确定有限自动机(NFA)定义:一个非确定有限自动机(NFA) M是一个五元式M=(S, , f, S0, F),其中:1 S: 有穷状态集;2 :输入字母表(有穷);3 f: 状态转换函数,为S*2S的部分映射(非单值);4 S0S是非空的初态集;5 F S :终态集(可空)。从状态图中看NFA 和DFA的区别: 1 弧上的标记可以是*中的一

11、个字,而不一定是单个字符; 2 同一个字可能出现在同状态射出的多条弧上。DFA是NFA的特例。定义:对于任何两个有限自动机M和M,如果L(M)=L(M),则称M与M等价。自动机理论中一个重要的结论:判定两个自动机等价性的算法是存在的。对于每个NFA M存在一个DFA M,使得 L(M)=L(M)。亦即DFA与NFA描述能力相同。把上述NFA确定化采用子集法.设I是M的状态集的一个子集,定义I的-闭包-closure(I)为: i) 若sI,则s-closure(I); ii) 若sI,则从s出发经过任意条弧而能到达的任何状态s都属于-closure(I) 即 -closure(I)=Is|从某

12、个sI出发经过任意条弧能到达s例:设a是中的一个字符,定义 Ia= -closure(J)其中,J为I中的某个状态出发经过一条a弧而到达的状态集合。 3.3.4 正规文法与有限自动机的等价性定理: 1.对每一个右线性正规文法G或左线性正规文法G,都存在一个有限自动机(FA) M,使得L(M)L(G)。2.对每一个FA M,都存在一个右线性正规文法GR和左线性正规文法GL,使得L(M)L(GR)L(GL)。3.3.5 正规式与有限自动机的等价性定理: 1. 对任何FA M,都存在一个正规式r,使得L(r)=L(M)。 2. 对任何正规式r,都存在一个FA M,使得L(M)=L(r)。2 对转换图

13、概念拓广,令每条弧可用一个正规式作标记。(对一类输入符号)3.3.6 确定有限自动机的化简 对DFA M的化简:寻找一个状态数比M少的DFA M,使得L(M)=L(M) 假设s和t为M的两个状态,称s和t等价:如果从状态s出发能读出某个字而停止于终态,那么同样,从t出发也能读出而停止于终态;反之亦然。 两个状态不等价,则称它们是可区别的。 对一个DFA M最少化的基本思想: 把M的状态集划分为一些不相交的子集,使得任何两个不同子集的状态是可区别的,而同一子集的任何两个状态是等价的。最后,让每个子集选出一个代表,同时消去其他状态。I(1)=0, 1, 2 I(2)=3, 4, 5, 6 Ia(1

14、) =1, 3 I(11) =0, 2 I(12) =1 I(2)=3, 4, 5, 6 I(11) =0, 2Ia(11) =1 Ib(11) =2, 5 I(111) =0 I(112) =2 I(12) =1 I(2)=3, 4, 5, 6 Ia(2) =3, 6 Ia(2) =4, 5 第四章 语法分析自上而下分析 语法分析的方法: 自下而上分析法(Bottom-up) 自上而下分析法(Top-down) 基本思想:它从文法的开始符号出发,反复使用各种产生式,寻找匹配的推导。 递归下降分析法:对每一语法变量(非终结符)构造一个相应的子程序,每个子程序识别一定的语法单位,通过子程序间的信息反馈和联合作用实现对输入串的识别。 预测分析程序 优点:直观、简单和宜于手工实现。4.3 LL(1)分析法 构造不带回溯的自上而下分析算法 要消除文法的左递归性 克服回溯4.3.1 左递归的消除 直接消除见诸于产生式中的左

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1