1 / 13

第一章

语言与语言的翻译 编译器的基本组成 编译器的分析 / 综合模式 ( 编译器基础架构 ) 扫描遍数 编译器的编写. 第一章. 第二章. 词法的双重含义: 词法规则 + 词法分析 模式、记号与单词 形式化描述:正规式与正规集 记号的识别:有限自动机 NFA :与正规式有对应关系,易于构造,状态数少; DFA :具有确定性,不易构造,状态数可能多; 识别方法:模拟 DFA 、模拟 NFA 对于正规式 r ,构造自动机识别字符串 x ,有结论:. 第二章. 从正规式到词法分析器 正规式描述模式 由正规式构造 NFA

judah-weber
Download Presentation

第一章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 语言与语言的翻译 编译器的基本组成 编译器的分析/综合模式(编译器基础架构) 扫描遍数 编译器的编写 第一章

  2. 第二章 词法的双重含义:词法规则+词法分析 • 模式、记号与单词 • 形式化描述:正规式与正规集 • 记号的识别:有限自动机 • NFA:与正规式有对应关系,易于构造,状态数少; • DFA:具有确定性,不易构造,状态数可能多; • 识别方法:模拟DFA、模拟NFA 对于正规式r,构造自动机识别字符串x,有结论:

  3. 第二章 • 从正规式到词法分析器 • 正规式描述模式 • 由正规式构造NFA • NFA的确定化(子集法:smove, ε-闭包) • DFA的最小化(可区分概念) • 词法分析器:表驱动与直接编码

  4. 第三章 • 程序设计语言与文法 • 正规式与正规文法 • 上下文无关文法CFG = (N, T, P, S) • 文法分类:0型、1型、2型和3型 • 有关推导的基本概念 • 产生语言的基本方法-推导:句子与句型、直接推导与推导、最左推导与左句型 • 分析树与语法树 • 分析树记录推导过程并反映语言结构 • 语法树仅反映语言结构而忽略推导过程,树中没有非终结符 • 二义性与二义性的消除

  5. 第三章 • 自上而下分析 • 分析方法:用推导的方法从上到下构造分析树,谋求与输入序列的匹配,是一种试探的方法; • 对文法的要求:为避免回朔与无穷递归,要求文法没有公共左因子和左递归; • 递归下降子程序:每个非终结符是一个子程序 • 预测分析 • 下推自动机工作模式:格局与格局的变换 • 预测分析表:四个动作、分析表中的内容 • 预测分析表的构造: FIRST集合与FOLLOW集合 • LL(1)文法及其判别方法

  6. 自下而上分析 • 分析方法:用归约的方法从叶子到根构造分析树,谋求对输入序列的匹配 • 基本概念:短语、直接短语、句柄、规约、规范规约、剪句柄 • 基本方法: 用移进-归约方法实现剪句柄 • LR文法与LR分析:LR(0), SLR(1), LALR(1), LR(1) • SLR(1)分析 • 格局与格局变换、改变格局的四个动作 • 移进-归约分析表:动作表与转移表 • SLR(1)分析器的构造 • 识别活前缀的DFA:LR(0)项目、项目集、项目集族、子集法 • 识别活前缀:有效项目、可移进项、可规约项、冲突 • SLR(1)文法:简单向前看一个终结符

  7. 第四章 重点是程序设计语言的静态语义分析,并且在语法分析的基础上生成中间代码,采用的基本方法是语法制导翻译。 • 语法制导翻译的基本概念 • 语法与语义 • 属性与语义规则 • 语义规则的两种形式 • 中间代码 • 为什么生成中间代码 • 常用形式:树、后缀式、三地址码(三元式、四元式) • 符号表的组织 • 条目与信息存储(直接/间接) • 作用域信息保存(线性表、散列表)

  8. 第四章 • 声明语句的翻译 • 定义与声明:类型定义与变量声明,过程定义与声明 • 变量声明:填写符号表 • 过程声明 • 左值与右值 • 值调用、引用调用、复写-恢复、换名调用 • 名字的作用域:静态作用域与最近嵌套原则 • 嵌套定义的过程中信息的存储 • 可执行语句的翻译 • 简单算术表达式和赋值句的翻译:类型转换 • 数组元素的引用

  9. 4.9 本章小结 布尔表达式短路计算的翻译:为什么需要短路计算,短路计算的控制流,真出口与假出口,真值链与假值链 控制语句的翻译:控制语句的分类,无条件转移与条件转移,拉链/回填技术 9

  10. *第五章 本章介绍程序运行时的空间组织,重点是讨论如何通过对过程的静态分析(包括符号表的使用)建立运行环境,以保证程序的正确执行。 • 过程的动态特性 • 过程、活动、生存期、控制流; • 活动树、控制栈、活动记录; • 名字的绑定、环境与状态; • 运行时的存储空间组织 • 内存划分:可执行代码、静态数据区、栈、堆; • 活动记录的内容:参数与返回值、控制链、访问链、机器状态、本地数据、临时变量等。

  11. *第五章 • 不同的存储分配策略 • 静态分配:绑定是静态的 • 栈分配:基于控制栈自动管理内存 • 堆分配:根据要求从堆数据区动态地分配和释放内存 • 栈分配策略 • 调用序列与返回序列; • 控制链与访问链:控制链用于活动记录的正确切换,体现活动调用关系;访问链用于访问非本地数据,体现过程嵌套关系; • 访问链的实现:访问链、显示表;

  12. 答疑 • 答疑:7号星期天下午,8号星期一下午、晚上,信远楼1楼教师休息室

  13. 题型 一、填空题(10题,每空1.5分,共15分) 二、简答题(4题,每题6分,共24分) 三、计算题(6题,共61分) 12, 6, 12, 12, 7, 12

More Related