南京大学:《编译原理 Principles and Techniques of Compilers》课程教学电子教案(课件讲义)编译课程复习(许畅)

编译课程复习 许畅 南京大学计算机系 2022年春季 版权所有南京大学计算机科学与技术系许畅2022春季版
许畅 南京大学计算机系 2022年春季 编译课程复习 版权所有 南京大学计算机科学与技术系 许畅 2022春季版 南大编译许畅

引论(1) 源程序 编译器 目标程序 2
源程序 编译器 目标程序 引论 (1) 2 南大编译许畅

字符流 引论(2) 词法分析器 符号流 语法分析 语法树 语义分析 语法树 符号表 中间代码生成器 中间表示形式 机器无关代码优化器 中间表示形式 代码生成器 目标机器语言 机器相关代码优化器 目标机器语言 3
引论 (2) 3 南大编译许畅

词法分析 功能和作用 相关概念:字母表、串、语言等 正则表达式 。状态转换图 有穷自动机:确定(DFA)VS.不确定(NFA) NFA和DFA识别串的模拟 正则表达式→NFA)DFA DFA状态最小化
词法分析 • 功能和作用 • 相关概念:字母表、串、语言等 • 正则表达式 • 状态转换图 • 有穷自动机: 确定 (DFA) vs. 不确定 (NFA) • NFA和DFA识别串的模拟 • 正则表达式 ➔ NFA ➔ DFA • DFA状态最小化 4 南大编译许畅

语法分析(1) 功能和作用 。 相关概念:文法(上下文无关文法)、推导(最左和 最右)、语法分析树等 二义性、左递归及其消除 自顶向下分析技术 递归下降 预测分析 FIRST和FOLLOW 预测分析表、分析流程 LL(1)文法 5
语法分析 (1) • 功能和作用 • 相关概念:文法 (上下文无关文法)、推导 (最左和 最右)、语法分析树等 • 二义性、左递归及其消除 • 自顶向下分析技术 – 递归下降 – 预测分析 • FIRST和FOLLOW • 预测分析表、分析流程 • LL(1)文法 5 南大编译许畅

语法分析(2) 自底向上分析技术 句柄、移入-归约的分析框架 LR分析技术 。相关概念:项、项集、项集闭包、项集规范族 。 分析框架:增广文法、语法分析表(ACTION表、GOTO表) SLR(1)分析表的构造(LR(O)项) 规范LR(1)语法分析器(LR(1)项) 。LR(1)项集规范族的构造、LR(1)语法分析表的构造 LALR分析、与SLR和LR分析的比较 二义性文法的分析 6
语法分析 (2) • 自底向上分析技术 – 句柄、移入-归约的分析框架 – LR分析技术 • 相关概念:项、项集、项集闭包、项集规范族 • 分析框架:增广文法、语法分析表 (ACTION表、GOTO表) – SLR(1)分析表的构造 (LR(0)项) – 规范LR(1)语法分析器 (LR(1)项) • LR(1)项集规范族的构造、LR(1)语法分析表的构造 – LALR分析、与SLR和LR分析的比较 – 二义性文法的分析 6 南大编译许畅

语义分析和中间代码生成(1) 基于语法制导的翻译技术 语法制导定义 ·属性(综合属性、继承属性) 语义规则 属性求值、注释语法分析树 求值顺序、依赖图 S属性定义、L属性定义 语法制导定义→翻译方案 7
语义分析和中间代码生成 (1) • 基于语法制导的翻译技术 – 语法制导定义 • 属性 (综合属性、继承属性) • 语义规则 • 属性求值、注释语法分析树 • 求值顺序、依赖图 • S属性定义、L属性定义 – 语法制导定义 ➔ 翻译方案 7 南大编译许畅

语义分析和中间代码生成(2) 中间代码的形式 DAG图、抽象语法树、三地址代码 。类型声明 类型表达式、类型等价 类型的声明、局部变量的存储布局、记录和类 表达式的翻译 数组元素的寻址、数组引用的翻译 控制流语句的翻译 控制流语句、布尔表达式、非回填VS.回填 8
语义分析和中间代码生成 (2) • 中间代码的形式 – DAG图、抽象语法树、三地址代码 • 类型声明 – 类型表达式、类型等价 – 类型的声明、局部变量的存储布局、记录和类 • 表达式的翻译 – 数组元素的寻址、数组引用的翻译 • 控制流语句的翻译 – 控制流语句、布尔表达式、非回填 vs. 回填 8 南大编译许畅

运行时刻环境 存储组织 。 栈式存储分配 畅 活动树 活动记录:布局 过程的调用及返回 非局部数据的访问(不支持嵌套过程VS.支持嵌套过程) 。堆管理:垃圾回收 可达性、引用计数、基于跟踪的回收 9
运行时刻环境 • 存储组织 • 栈式存储分配 – 活动树 – 活动记录:布局 – 过程的调用及返回 – 非局部数据的访问 (不支持嵌套过程 vs. 支持嵌套过程) • 堆管理:垃圾回收 – 可达性、引用计数、基于跟踪的回收 9 南大编译许畅

代码生成 目标语言、指令寻址 目标代码中的地址 静态分配 栈分配 。 对中间代码进行局部优化 基本块和流图 基本块的优化 代码生成器 寄存器和地址描述符、代码生成算法、寄存器分配 10
代码生成 • 目标语言、指令寻址 • 目标代码中的地址 – 静态分配 – 栈分配 • 对中间代码进行局部优化 – 基本块和流图 – 基本块的优化 • 代码生成器 – 寄存器和地址描述符、代码生成算法、寄存器分配 10 南大编译许畅
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 南京大学:《编译原理 Principles and Techniques of Compilers》课程教学电子教案(课件讲义)第一章 引论(许畅).pdf
- 南京大学:《编译原理 Principles and Techniques of Compilers》课程教学电子教案(课件讲义)第三章 词法分析.pdf
- 南京大学:《编译原理 Principles and Techniques of Compilers》课程教学电子教案(课件讲义)第四章 语法分析.pdf
- 南京大学:《编译原理 Principles and Techniques of Compilers》课程教学电子教案(课件讲义)第五章 语法制导的翻译.pdf
- 南京大学:《编译原理 Principles and Techniques of Compilers》课程教学电子教案(课件讲义)第六章 中间代码生成.pdf
- 南京大学:《编译原理 Principles and Techniques of Compilers》课程教学电子教案(课件讲义)第七章 运行时刻环境.pdf
- 南京大学:《编译原理 Principles and Techniques of Compilers》课程教学电子教案(课件讲义)第八章 代码生成.pdf
- 南京大学:《编译原理 Principles and Techniques of Compilers》课程教学电子教案(课件讲义)第九章 机器无关的优化.pdf
- 中国科学技术大学:Robust Speech Recognition with Speech Enhanced Deep Neural Networks.pdf
- 西安电子科技大学:《数据结构与算法分析 Data Structure and Algorithm Analysis》课程教学资源(PPT课件讲稿)01 Lists, Stacks, and Queues.ppt
- 西安电子科技大学:《数据结构与算法分析 Data Structure and Algorithm Analysis》课程教学资源(PPT课件讲稿)02 Trees(主讲:刘静).ppt
- 西安电子科技大学:《数据结构与算法分析 Data Structure and Algorithm Analysis》课程教学资源(PPT课件讲稿)05 Disjoint Set ADT.ppt
- 西安电子科技大学:《数据结构与算法分析 Data Structure and Algorithm Analysis》课程教学资源(PPT课件讲稿)04 Priority Queues(Heaps).ppt
- 西安电子科技大学:《数据结构与算法分析 Data Structure and Algorithm Analysis》课程教学资源(PPT课件讲稿)03 Hashing.ppt
- 西安电子科技大学:《数据结构与算法分析 Data Structure and Algorithm Analysis》课程教学资源(PPT课件讲稿)08 Algorithm Design Techniques.ppt
- 西安电子科技大学:《数据结构与算法分析 Data Structure and Algorithm Analysis》课程教学资源(PPT课件讲稿)07 Graph Algorithms.ppt
- 西安电子科技大学:《数据结构与算法分析 Data Structure and Algorithm Analysis》课程教学资源(PPT课件讲稿)06 Algorithm Analysis and Sorting.ppt
- 西安电子科技大学:《算法设计技术 Algorithms Design Techniques》课程教学资源(PPT课件讲稿)Iterative Improvement for Domain-Specific Problems(Chapter 16 Network Flow Chapter 17 Matching).ppt
- 西安电子科技大学:《算法设计技术 Algorithms Design Techniques》课程教学资源(PPT课件讲稿)Coping with Hardness(Chapter 13 Backtracking Chapter 14 Randomized Algorithms Chapter 15 Approximation Algorithms).ppt
- 西安电子科技大学:《算法设计技术 Algorithms Design Techniques》课程教学资源(PPT课件讲稿)First-Cut Techniques(Chapter 8 The Greedy Approach Chapter 9 Graph Traversal).ppt
- 南京大学:《编译原理 Principles and Techniques of Compilers》课程教学电子教案(实验讲义)实验一 词法分析与语法分析.pdf
- 南京大学:《编译原理 Principles and Techniques of Compilers》课程教学电子教案(实验讲义)实验二 语义分析.pdf
- 南京大学:《编译原理 Principles and Techniques of Compilers》课程教学电子教案(实验讲义)实验三 中间代码生成.pdf
- 南京大学:《编译原理 Principles and Techniques of Compilers》课程教学电子教案(实验讲义)实验四 目标代码生成.pdf
- 《编译原理 Principles and Techniques of Compilers》课程教学资源(学习资料)Assemblers,Linkers,and the SPIM Simulator(MIPS32 and SPIM).pdf
- 南京大学:《软件工程导论 Introduction to Software Engineering Research》课程教学电子教案(课件讲义)04 Conduct Rigorous and Scientific Research(Experiment Design in Software Engineering Research).pdf
- 华中科技大学:《面向对象程序设计》课程教学资源(课件讲稿)课程简介(李瑞轩).pdf
- 华中科技大学:《面向对象程序设计》课程教学资源(课件讲稿)第1章 引论(李瑞轩).pdf
- 华中科技大学:《面向对象程序设计》课程教学资源(课件讲稿)第2章 C++的变量、类型及函数.pdf
- 华中科技大学:《面向对象程序设计》课程教学资源(课件讲稿)第3章 C++的类.pdf
- 华中科技大学:《面向对象程序设计》课程教学资源(课件讲稿)第4章 作用域及成员指针.pdf
- 华中科技大学:《面向对象程序设计》课程教学资源(课件讲稿)第5章 静态成员与友元.pdf
- 华中科技大学:《面向对象程序设计》课程教学资源(课件讲稿)第6章 单继承类.pdf
- 华中科技大学:《面向对象程序设计》课程教学资源(课件讲稿)第7章 虚函数(李瑞轩).pdf
- 华中科技大学:《面向对象程序设计》课程教学资源(课件讲稿)第8章 多继承类.pdf
- 华中科技大学:《面向对象程序设计》课程教学资源(课件讲稿)第9章 运算符重载.pdf
- 哈尔滨学院:《程序设计(C语言》课程教学大纲(理工类)Program Design(C language).pdf
- 运城学院:《微机原理与接口技术》课程教学大纲 Principles and Application of Micro-Computer(赵润林、朱铭琳、王晓丽).pdf
- 运城学院:《微机原理与接口技术》课程教学资源(仿真式题库)试题1.doc
- 运城学院:《微机原理与接口技术》课程教学资源(仿真式题库)试题2 参考答案.doc