2022年《编译原理》重点知识总结.docx
《2022年《编译原理》重点知识总结.docx》由会员分享,可在线阅读,更多相关《2022年《编译原理》重点知识总结.docx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译原理学问点总结目录第一章 引论其次章 高级语言及其语法描述第三章 语法分析自上而下分析第四章 属性文法和语法制导翻译第五章 语义分析和中间代码产生第六章 优化第一章 引论一编译程序 compiler:把某一种高级语言程序等价地转换成另一种低级语言程序 如汇编语言或机器语言程序 的程序二编译程序的工作的五个阶段 :词法分析、语法分析、中间代码产生、优化、目标代码产生1. 词法分析任务:输入源程序, 对构成源程序的字符串进行扫描和分解, 识别出一个个单词符号;依循的原就:构词规章描述工具:有限自动机FORI:=1TO100DO保留字 标识符 等符 整常数 保留字 整常数保留字2. 语法分析任务
2、: 在词法分析的基础上,依据语言的语法规章把单词符号串分解成各类语法单位;依循的原就:语法规章 述工具:上下文无关文法3. 语义分析与中间代码产生任务: 对各类不同语法范畴按语言的语义进行初步翻译; (变量是否定义、类型是否正确等)依循的原就:语义规章中间代码 : 三元式,四元式,逆波兰记号,树形结构等;是一种独立于详细硬件的记号系统;例:将 Z:=X + * Y翻译成四元式为(1) *YT12+XT1T23 :=T2_Z4. 优化任务:对于前阶段产生的中间代码进行加工变换,以期在最终阶段产生更高效的目标代码;依循的原就:程序的等价变换规章FOR K:=1 TO 100 DO BEGINM :
3、= I + 10 * K;N := J + 10 * K;END4. 目标代码产生任务:把中间代码变换成特定机器上的目标代码;依靠于硬件系统结构和机器指令的含义目标代码三种形式 :a) 肯定指令代码 :可直接运行b) 可重新定位指令代码 :需要连接装配c) 汇编指令代码 :需要进行汇编其次章 高级语言及其语法描述语法词法规章:单词符号的形成规章;a) 单词符号是语言中具有独立意义的最基本结构;一般包括: 常数、标识符、基本字、算符、界符等;b) 描述工具:正规式和有限自动机语法规章:语法单位的形成规章;a) 语法单位通常包括: 表达式、语句、分程序、过程、函数、程序等;c) 描述工具:上下文无
4、关文法语义语义:一组规章,用它可以定义一个程序的意义;描述方法:a) 自然语言描述:隐匿错误、二义性和不完整性b) 形式描述:无二义性完整性多数语言中,算符的优先次序如下: 乘幂( * 或)一元负( - ) 乘、除加、减关系符( ,=,)非( .,not ) 与 , &,and 或 . ,|,or,隐含或 imp等值(或 epui ,或)2.3 程序语言的语法描述1. 几个概念 :a) 考虑一个有穷字母表 字符集b) 其中每一个元素称为一个字符c) 上的字 也叫字符串 是指由中的字符所构成的一个有穷序列d) 不包含任何字符的序列称为空字,记为e) 用 *表示上的全部字的全体 , 包含空字*例如
5、:设 =a , b ,就 = ,a,b,aa,ab,ba,bb,aaa,.f) *的子集 U和 V的连接(积)定义为 UVb |U & bV 例如:设: U a, aa ,V b, bb那么: UV= ab, abb, aab, aabb g) V自身的 n 次积记为 Vn=VVVh) 规定 V0= ,令 V* =V0V1 V2V3 称 V* 是 V 的闭包;记 VVV*,称 V+是 V的正规闭包;例如:设: U a, aa那么: U* = , a, aa, aaa, aaaa,U = a, aa, aaa, aaaa,i) 0 型 短语文法,图灵机 :产生式形如:*其中:V TVN 且至少含
6、有一个非终结符;V T*VN任何 0 型语言都是递归可枚举的;j) 1 型 上下文有关文法,线性界限自动机 : 产生式形如:其中: | ,仅 S例外;意味着对非终结符进行替换时务必考虑上下文,并且,一般不答应替换成空串;*k) 2 型 上下文无关文法,非确定下推自动机 : 产生式形如:A其中: AV N;V TVN ;非终结符的替换可以不必考虑上下文;*l) 3 型 正规文法,有限自动机 : 产生式形如: AB 或 A 其中:VT ;A,BVN 产生式形如: AB或 A 其中:VT ;A,BVN正规文法的才能要比上下文无关文法弱得多;四种类型描述才能比较m) 上下文无关文法的定义:一个上下文无
7、关文法 G是一个四元式G=VT,VN,S,P ,其中VT:终结符集合 非空 VN:非终结符集合 非空 ,且 VTVN= S:文法的开头符号, SVN*P:产生式集合 有限 ,每个产生式形式为P, PVN,V TVN开头符 S 至少必需在某个产生式的左部显现一次;例:文法 G1A : Ac|AbG1A 的语言解: LG1=c , cb,cbb, ,以 c 开头,后继如干个 bn) 定义:假如一个文法存在某个句子对应两颗不同的语法树,就说这个文法是二义的;GE: Ei|E+E|E*E|E是二义文法;o) 语言的二义性: 一个语言是二义性的, 假如对它不存在无二义性的文法;可能存在 G和 G,一个为
8、二义的,一个为无二义的;但 LG=LG2. 状态转换图a) 概念:状态转换图是一张有限方向图;b) 结点代表状态,用圆圈表示;c) 状态之间用箭弧连结, 箭弧上的标记 字符 代表射出结状态下可能显现的输入字符或字符类;d) 一张转换图只包含有限个状态, 其中有一个为初态, 至少要有一个终态3. 正规运算符优先次序在不致混淆时,括号可以省去,但规定算符的优先次序为:* (闭包).(连接)|(或)4. 3型文法- 正规式G的任何产生式为 AB 或 A*其中:VT ;A,BVN3型文法等价于正规式,所以也称正规文法;确定有限自动机 DFA对状态图进行形式化,就可以下定义:自动机 M是一个五元式 M=
9、S, f, S0 , F,其中:a) S: 有穷状态集,b) :输入字母表 有穷 ,c) f:状态转换函数,为 SS的单值部分映射, fs , a=s 表示:当现行状态为 s,输入字符为 a 时,将状态转换到下一状态 s;我们把 s称为 s 的一个后继状态;d) S0S是唯独的一个初态;e) FS :终态集 可空 ;例如: DFA M=0 ,1,2,3 ,a ,b ,f ,0,3 , 其中: f 定义如下:f0 , a=1f0 , b=2f1 , a=3f1 , b=2f2 , a=1f2 , b=3f3 , a=3f3 , b=3非确定有限自动机 NFA定义:一个非确定有限自动机 NFA M
10、 是一个五元式 M=S, f, S0, F ,其中:1 S:有穷状态集;2 :输入字母表 有穷 ;3 f:状态转换函数,为 S*2S 的部分映射 非单值 ;4 S0S 是非空的初态集;5 FS :终态集 可空 ;从状态图中看 NFA 和 DFA的区分:1 弧上的标记可以是*中的一个字,而不肯定是单个字符;2 同一个字可能显现在同状态射出的多条弧上;DFA是 NFA的特例;定义:对于任何两个有限自动机M和 M,假如 LM=LM ,就称 M与 M等价;自动机理论中一个重要的结论:判定两个自动机等价性的算法是存在的;对于每个 NFA M存在一个 DFA M,使得 LM=LM ;亦即 DFA与 NFA
11、描述才能相同;把上述 NFA确定化采纳子集法 .设 I 是 M的状态集的一个子集,定义I 的 - 闭包 -closureI为:i) 如 sI ,就 s-closureI;ii) 如 sI ,就从 s 动身经过任意条弧而能到达的任何状态 s都属于 -closureI即-closureI=Is | 从某个 sI 动身经过任意条弧能到达s例:设 a 是 中的一个字符,定义 I a=-closureJ其中, J 为 I 中的某个状态动身经过一条 a 弧而到达的状态集合;正规文法与有限自动机的等价性定理:1. 对每一个右线性正规文法G或左线性正规文法 G,都存在一个有限自动机FA M ,使得 LM LG
12、 ;2. 对每一个 FA M,都存在一个右线性正规文法 GR和左线性正规文法 GL,使得 LM LGR LGL ;3.3.5 正规式与有限自动机的等价性定理:1. 对任何 FA M,都存在一个正规式r ,使得 Lr=LM ;2. 对任何正规式 r ,都存在一个 FA M,使得 LM=Lr ;对转换图概念拓广,令每条弧可用一个正规式作标记; 对一类输入符号 确定有限自动机的化简对 DFA M的化简: 查找一个状态数比 M少的 DFA M,使得 LM=LM 假设 s 和 t 为 M的两个状态,称 s 和 t 等价: 假如从状态 s 动身能读出某个字 而停止于终态,那么同样,从 t 动身也能读出而停
13、止于终态; 反之亦然;两个状态不等价,就称它们是可区分的;对一个 DFA M最少化的基本思想 :把 M的状态集划分为一些不相交的子集,使得任何两个不同子集的状态是可区分的,而同一子集的任何两个状态是等价的;最终,让每个子集选出一个代表,同时消去其他状态;I 1 =0, 1, 2I2 =3, 4, 5, 6aI 1 =1, 3I11 =0, 2I12 =1 I2 =3, 4, 5, 611I 11 =0, 2I11a=1 Ib=2, 5I111 =0I112 =2 I12 =1 I2 =3, 4, 5, 6aI 2 =3, 6I2 =4, 5a第三章 语法分析自上而下分析语法分析的方法:自下而上
14、分析法 Bottom-up自上而下分析法 Top-down基本思想:它从文法的开头符号动身,反复使用各种产生式,查找 匹配 的推导;递归下降分析法:对每一语法变量 非终结符 构造一个相应的子程序,每个子程序识别肯定的语法单位,通过子程 序间的信息反馈和联合作用实现对输入串的识别;猜测分析程序优点:直观、简洁和宜于手工实现;LL1分析法构造不带回溯的自上而下分析算法要排除文法的左递归性 克服回溯左递归的排除直接排除见诸于产生式中的左递归:假定关于非终结符P 的规章为PP |其中 不以 P 开头;我们可以把 P 的规章等价地改写为如下的非直接左递归形式: P PP P|一般而言,假定 P 关于的全
15、部产生式是PP 1 | P2 | | Pm |1 |2 | | n其中,每个都不等于,每个都不以 P 开头那么,排除 P 的直接左递归性就是把这些规章改写成: P 1P|2P| |nPP 1P|2P| |mP|提取公共左因子 :假定关于 A 的规章是A1 |2 |n |1 |2 | |m 其中,每个不以 开头那么,可以把这些规章改写成A A|1 |2 | |mA1 |2 | |n经过反复提取左因子,就能够把每个非终结符 包括新引进者 的全部候选首符集变成为两两不相交;LL1分析条件假定 S 是文法 G的开头符号,对于 G的任何非终结符 A,我们定义FOLLOWA* a | S.Aa.,aVT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理 2022 编译 原理 重点 知识 总结
限制150内