2023年编译原理知识点

上传人:枕*** 文档编号:166420074 上传时间:2022-11-01 格式:DOC 页数:9 大小:205.50KB
收藏 版权申诉 举报 下载
2023年编译原理知识点_第1页
第1页 / 共9页
2023年编译原理知识点_第2页
第2页 / 共9页
2023年编译原理知识点_第3页
第3页 / 共9页
资源描述:

《2023年编译原理知识点》由会员分享,可在线阅读,更多相关《2023年编译原理知识点(9页珍藏版)》请在装配图网上搜索。

1、1. 解释程序:不生成目的代码编译程序:生成目的代码2. 编译程序组成:8个分析:(词法分析程序、语法分析程序、语义分析程序、中间代码生成程序)综合:(代码优化程序、目的代码生成程序)贯穿始末:表格管理程序、犯错解决程序3. 文法四元组:终结符号集合Vt 、非终结符号集合Vn、 产生式集合P、辨认符号(开始符号)SVTVN文法 - 语言 (推导、规约)唯一; 语言 - 文法 (凑规则)不唯一。4. 文法分类:0型文法(短语结构文法):左侧至少具有一个非终结符1型文法(上下文有关文法):左侧长度 除外, S不能出现在右侧2型文法(上下文无关文法):左侧只能有一个非终结符 ( 语法分析 ) 3型文

2、法(正规文法):A- aB A-a 右线性; ( 词法分析 ) A-Ba 或A-a 左线性(看非终结符位置) 5. A* A0 A+ A0 != 空集A+ AA* A*A 6. 句型:符号串x是从辨认符号S推导出来的,x称为一个句型句子:x仅由终结符号组成,仅含终结符号的句型是一个句子短语:子树的末端(叶子)从左至右连成的串(涉及整棵语法树)简朴子树:只具有单层分枝的子树直接短语( 简朴短语 ):由简朴子树的叶子组成 句柄:最左边的直接短语(不一定含终结符)素短语:至少具有一个终结符的短语,并且除它自身之外不再含任何更小的素短语最左素短语:最左边的素短语短语:P(相对于T、E)、 P+T(相对

3、于E)、i(相对于P、F)、P+T+i(相对于E)直接短语:P、i 句柄:P (最左边的直接短语)素短语:P+T 、i (至少具有一个终结符的短语) 最左素短语:P+T7. 二义性文法:有两个不同的最左推导或有两个不同的最右推导或能产生两棵语法树8. 文法产生式 正规式 规则1 AxB By A = xy 规则2 AxA|y A = x*y 右线性AAx|y A = yx* 左线性 规则3 Ax Ay A = x|y9. DFA 初态唯一,转换函数为单值映射表达方式:转移矩阵、状态转换图 状态转换图上若存在一条从初态到某一终态的道路,且这条路上所有弧的标记符连成的字符串为t,则称t被DFA接受

4、。10. NFA初态可为多个,转换函数为多值映射拟定化:与某一NFA等价的DFA不唯一1.状态集合I的-闭包2.move函数最小化:消除多余状态和合并等价状态多余状态:从自动机的开始状态出发,任何输入串也不能到达的那个状态;或者从这个状态没有通路到达终态。 11. 左公因子显式左公因子提取若Aab1|ar,则将其改写为: i. Aa(b1|r)ii. 或引入新非终结符 AaA Ab1|r隐式左公因子:产生式右部以非终结符开始用该非终结符的右部以终结符开始的产生式去替换它,再提取SaSd|Ac AaS|b把A的产生式代入S中: SaSd|aSc|bcSaS S S d|c Sbc12. 左递归1

5、.简朴左递归:消除左递归改写为右递归 AAa|b AbA AaA|2.间接左递归非终结符号排序(出现频率高的排后面)左部非终结符下标 右部时改写(替换右部)消除直接左递归 13. 自顶向下:LL(1) FIRST:A X1X2X3Xn 若X1 X2 X3 ! 后面不用管则FIRST(A)= First(X1)- U First(X2)- First(X3) 若全能推出 则先求所有FIRIST(X)-并集 再并上FOLLOW: (a)设S为开始符号,则#FOLLOW(S) (b)若有产生式A aBb, b !* ,则FIRST() 加至FOLLOW(B) (c)若b * (即eFIRST()),

6、则FIRST(b)-和FOLLOW(A)加至FOLLOW(B) SELECT:A a的可选集SELECT *a !,则SELECT(Aa)= FIRST(a) *a,则SELECT(Aa)= FIRST(a)- FOLLOW(A) 一个上下文无关文法G是LL(1)文法的充要条件是:对于G的每个非终结符号A的任何两个不同产生式 A,A满足: SELECT(A)SELECT(A)= 、不同时推导出LL(1)的含义:第一个L:从左到右扫描输入串 第二个L:分析过程中用最左推导 1:只需向右看1个输入符号(Look ahead)便可拟定选用哪个产生式进行推导 LL(1)文法是无二义的。 LL(1)文法

7、不含左递归。14. 自底向上:算符优先、LR(0)、SLR(1)、LR(1)、LALR(1)15. 规范归约:最右推导的逆过程(最左归约) 最右推导是规范推导 右句型(最右推导可得的句型)是规范句型 规范句型的特点:句柄后(右边)不会出现非终结符 规范归约的中心问题是:如何寻找或拟定一个句型的句柄。 可归约串: 最左素短语(算符优先分析法) 句柄(LR分析法)算符优先分析法不是规范归约方法。16. 若文法G中不存在右部具有相邻非终结符的产生式,则G为算符文法算符优先分析的可归约串是句型的最左素短语。起决定作用的是相邻两个终结符的优先关系ab 当且仅当G中存在产生式规则 Aab,或AaBbab

8、当且仅当G中存在产生式规则ABb,且B+a或 B+aC不允许有ab中的两种关系同时存在17. FIRSTVT计算如下:若有产生式Aa或ABa 则aFIRSTVT(A) A左侧的终结符 a.,即以终结符开头,该终结符入FirstvtA-B.,即以非终结符开头,该非终结符的Firstvt入A的FirstvtA-Ba.,即先以非终结符开头,紧跟终结符,则终结符入FirstvtLASTVT计算如下:若有产生式Aa或AaB则aLASTVT(A) A右侧的终结符 .a,即以终结符结尾,该终结符入LastvtA-.B,即以非终结符结尾,该非终结符的Lastvt入A的LastvtA-.aB,即先以非终结符结尾

9、,前面是终结符,则终结符入Lastvt18. LR分析法的归约过程是规范推导的逆过程,所以LR分析过程是一种规范归约过程无回溯的“移进-归约”方法符号栈中的符号是规范句型的前缀,且不含句柄以后的任何符号(活前缀) ACTION 移进 归约 接受 犯错 ACTIONi,a=空白 犯错 ACTIONi,a=acc 符号栈中仅有#和文法开始符号S,输入串仅为#,分析结束。19. 一个句型的某个前缀的后缀是该句型的句柄,则这个前缀称为该句型的可归前缀。一个规范句型的一个前缀,若不含句柄之后的任何符号,则称它为该句型的一个活前缀。S - a Ac. B e 项目中 .之前a Ac为活前缀20. A a

10、ab,aVT 移进项目A a Bb,BVN 待归约项目A a 归约项目特别地:Ae 只有 A SS, SS 接受项目以上项目称作LR(0)项目。21. LR(0) 项目集规范族(辨认G的活前缀的DFA)假如不存在移进-归约冲突,归约-归约冲突,则称它是LR(0)文法。拓展文法的目的:使文法只有一个以辨认符号作为左部的产生式,从而使构造出来的分析器有唯一的接受状态。22. 对给定的文法,运用LR(0)方法判断符号串是否为该文法的句子:1.扩充文法为拓广文法;2.构造辨认此文法的所有活前缀的DFA,即构造LR(0)项目集规范族;3.判断是否为LR(0)文法;4.是 构造LR(0)分析表 运用LR分

11、析算法分析符号串。5.否,做其他解决。23. SLR(1)对所有非终结符都求出其FOLLOW集合发生冲突时,归约项目左部终结符FOLLOW集与移进项目 .后的终结符交集为空时,才干按此规约项目的产生式进行归约。 LR(0)分析对所有终结符均采用归约动作 SLR(1)分析参考FOLLOW集,以拟定归约动作。24. Follow集无法解决 移进-归约冲突或归约-归约冲突,考虑后继符25. 归约动作的选择:a) LR(0)分析考虑所有终结符b) SLR(1)分析参考 FOLLOW 集,为了拟定归约c) LR(1)分析仅考虑 LR(1)项目中的后继符(归约展望集,向前搜索符)拓展文法的后继符为#,即

12、S-S , # 为初态集的初始项目,S后first(e,#) = #LR(1)项目集规范族中,每个状态中添加新的产生式时,需求产生式左部字母后面的First集作为新产生式的后继符;否则后继符照抄前一个状态的I : A-a.B B-.e ,需求出First()作为B-.e的后继符26. 任何二义文法决不是一个LR文法 LL(k)文法都是LR(k)文法。27. a=b*c+b*d 逆波兰式:abc*bd*+= (算符优先的一个应用)无括号; 运算对象顺序不变; 运算符号的位置反映运算顺序。u 三元式 运算结果用三元式编号表达 b*c (*,b,c)u 四元式 运算结果用临时变量表达 b*c (*,

13、b,c,t)a:=b*c+b*d的三元式表达 a:=b*c+b*d的四元式表达 注意最后一步写法四元式直观写法:t1:=b*c t2:=b*d t3:=t1+t2 a:=t3中间代码优化解决时,四元式比三元式方便的多28. 终结符只有综合属性,由词法程序提供;非终结符可有综合也可有继承属性,但文法开始符号无继承属性。29. 按优化所涉及的程序范围可分为三种级别:局部优化、循环优化、全局优化。局部优化指在只有一个入口一个出口的基本块内进行的优化。30. 鉴定入口语句的规则:(a)代码序列的第1个语句。(b)条件或无条件转移语句的转移目的语句。If goto Goto (c)紧跟在无条件转移语句或条件转移语句后面的语句。例: B1 - (1) read x (2) read y B2 - (3) r:=x mod y (4) if r=0 goto (8) B3 - (5) x:=y (6) y:=r (7) goto (3) B4 - (8) write y (9) halt基本块i和基本块j满足如下条件之一,则从i引一条有向边到j 。1.j紧跟在i之后,且i的出口语句不是goto或停语句,可以是if goto S语句 如B2到B32.i的出口语句是goto S语句或“ifgoto S”语句,而S是j的入口语句, i是j的前驱结点。

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