- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
建立联系 补漏 交叉编译器、前端/后端,遍 Token格式 文法修剪(消除左递归、消除回溯、拓广文法、引入?产生式、分步归约) 有穷自动机与语言之间关系 自下而上的分析(LR(0), SLR(1), 算符优先文法) 中间表示(逆波兰、三地址码、AST、DAG) 符号表信息 运行时存储空间划分 基本块、CFG、局部优化概念 过程作为参数 实参是过程闭包 由IP和EP两个指针组成(对应书上的B1和B2) 形参超长处理 最外层过程(主程序)的活动记录中有啥? 该层定义的变量? 静态链、动态链的链尾 其他略去 例:移进归约框架 预祝新年快乐!考试取得好成绩! 考前总结 背景 必要性 作用 新旧版交替面临一些问题 从教学目标和要求说起 可能有助于提高考试成绩 或者让知识掌握得更好 知识梳理 知识梳理方法 过程性 抽象性 建立联系 补漏 过程性 1 源程序 Token流 2 语法单位 3 中间代码 4 优化代码 5 目标程序 DFA 3型文法 LL(1)分析 LR分析 2型文法 语法树 属性文法 运行时系统 优化类别 CFG SSA 寄存器分配 抽象性 推导 LL(1)文法 规范归约CFG文法 规范归约 算法优先文法 预测分析 递归下降分析 LR分析表 移进归约框架 优先关系表 移进归约框架 抽象性 DFA NFA r G SP-TOP FP-SP SP-TOP-D 单元的SIZE,对齐 单元的访问,偏移量 Calling Sequence p257 Return Sequence 建立和退除 实现Scanner是否方便 建立联系 语法树 语法单位及其之间的联系 扩展语法树 LL分析 LR分析 归约语法树 带注释语法树 语义分析 二义性文法 抽象语法树 推导 归约 短语,直接短语,句柄 属性文法 属性 属性方程 引入?产生式 声明语句 控制结构 过程调用 名字作用域 过程符号表 拉链返填 布尔表达式 复合语句 分支循环 标号 分步归约 栈帧 运行时栈 带注释语法树 四元组 补漏:主要教学内容对照 第一章 1.1-1.5 第二章 2.1-2.3 第三章 3.1-3.3 第四章 4.1-4.5 第五章 5.1, 5.2/5.3.1-3 第七章 7.1-7.6 第八章 8.1-8.4 第九章 9.1-9.5 第十章 10.2 引论 形式语言简介 词法分析 自顶向下语法分析 自底向上语法分析 中间代码生成 符号表 运行时存储空间组织 局部优化 举例:运行时栈 全局/ 静态区 栈区 堆区 低 高 全局/ 静态区 堆区 栈区 低 高 SP-TOP FP-SP 代码区 代码区 program chain; procedure p; var x:integer; procedure q; procedure r; begin x:=2; ... if ... then p; end; begin r; end; begin q; end; begin p; end r←4[fp] r←4[r] x值:-6[r] fp 访问链 控制链 返回地址 x:. 空闲区 chain sp 访问链 控制链 返回地址 访问链 控制链 返回地址 p q r 例:将语句翻译成四元组 E → i1 rop i2 { Gen(jrop,i1,i2,0); E.tc=nxq; Gen(j,-,-,0); E.fc=nxq; } C → if E then { bp (E.tc, nxq); C.chain := E.fc; } S → C S1 { S.chain := merg(C.chain, S1.chain); } Tp → C S1 else { q:=nxq; Gen(j, _, _, 0); bp(C.chain,nxq); Tp.chain:=merge(S1.chain,q);} S → Tp S1 { S.chain := merge(Tp. chain, S1.chain; } W → while { W.quad := nxq; } Wd → W E do { bp (E.tc,nxq); Wd.chain := E.fc; Wd.quad := W.quad ;} S → Wd S1 { bp(S1.chain,Wd.quad); Gen(j, _, _, Wd.quad); S.chain := Wd.chain;} S → A { S.chain := 0;} if xy then x:=1 else while x=y do x:=x
文档评论(0)