教学课件PPT编译原理_编译概述.pptx

上传人:李主任 文档编号:3849650 上传时间:2019-09-30 格式:PPTX 页数:39 大小:1.08MB
返回 下载 相关 举报
教学课件PPT编译原理_编译概述.pptx_第1页
第1页 / 共39页
教学课件PPT编译原理_编译概述.pptx_第2页
第2页 / 共39页
教学课件PPT编译原理_编译概述.pptx_第3页
第3页 / 共39页
教学课件PPT编译原理_编译概述.pptx_第4页
第4页 / 共39页
教学课件PPT编译原理_编译概述.pptx_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《教学课件PPT编译原理_编译概述.pptx》由会员分享,可在线阅读,更多相关《教学课件PPT编译原理_编译概述.pptx(39页珍藏版)》请在三一文库上搜索。

1、编 译 原 理 主讲教师:王莉丽 Sias_ 办公室:3-204 电话:13513713882 课程简介 软件技术的基础 研究生入学的考查课程之一 计算机专业的专业必修课 学时:64(理论:48;实验:16) 学分:4学分 教材与参考书 教材 编译原理第3版,骆婷等编著,电子工业出 版社。 参考书 编译原理第2版,徐兰芳等编著,电子工业 出版社。 程序设计语言编译原理,陈火旺等编著, 国防工业出版社。 教学内容 (1)编译程序概述1 (2)语言和文法2 (3)词法分析和有穷自动机3 (4)自顶向下语法分析方法.4 (5)自底向上算符优先分析法.4 (6)自底向上LR分析法. 4 (7)语法制导

2、翻译和中间代码生成5 (8)符号表的组织与管理6 (9)代码优化7 (10)目标程序运行时的存储空间组织8 (2)语言和文法 (3)词法分析和有穷自动机 (4)自顶向下语法分析方法 (5)自底向上算符优先分析法 (6)自底向上LR分析法 (7)语法制导翻译和中间代码生成 (9)代码优化 课程特点和要求 先行课程:高级程序语言、汇编语言、数据结 构、离散数学 课程内容广泛,涉及到数据结构、操作系统、 离散数学及语言理论,是综合性比较强的一门 课程 要求理解原理,掌握核心技术 学习方法 认真听课,掌握课本中的基本概念、基本原理 与基本算法 利用课后复习,掌握书中的例题与课后习题 理论结合实践 成绩

3、评定 考试课成绩三部分组成: 平时成绩(35%) 期中考试成绩(25%) 期末考试成绩(40%) 课堂出勤(10%) 作业(5%) 小测验(20%) 第1章 编译概述 1.1 翻译程序与编译程序 1 语言与翻译:语言是人类交流思想和信息的工具。从 自然语言来说,世界上存在着许多种语言,各国之间 要交流信息,就要有各种语言之间的翻译。 把翻译的思想放在程序语言上,就出现了翻译 程序。 1.1 翻译程序与编译程序 2.翻译程序:把一种语言(源语言)所写的程 序翻译成与之等价的另一种语言(目标语言) 所写的程序。 源程序翻译程序目标程序 1.1 翻译程序与编译程序 3. 编译程序:源语言是高级语言,

4、目标语言是 低级程序语言的翻译程序,叫做编译程序。 专指由高级语言转换成低级语言的翻译程序。 源程序翻译程序目标程序 高级语言 所写的程序 汇编语言或 机器语言程序 编译程序 1.1 翻译程序与编译程序 4.编译的转换过程 (1) 两阶段转换:编译运行 源程序 编 译 程 序 机器语言目标程序 编译阶段运行阶段 初始数据 运行系统 结果 1.1 翻译程序与编译程序 编译的转换过程 (2) 三阶段转换:编译汇编运行 源程序 编 译 程 序 汇编语言 目标程序 汇 编 程 序 机器语言 目标程序 初始数据 运行系统 结果 编译阶段汇编阶段运行阶段 1.1 翻译程序与编译程序 5.解释程序 立即执行

5、源程序而不生成目标程序的一种翻译 程序。 如BASIC语言。 编译与解释的区别: 编译笔译(产生目标程序) 解释口译(不产生目标程序) 1.2 编译过程和编译程序的 基本结构 先看自然语言的翻译 1 识别出句子中的一个个单词 2 分析句子的语法结构 3 分析句子的含义进行初步翻译 4 对译文进行修饰 5 写出最后译文 Bonjour, comment allez-vous? 1.2.1 编译过程 编译过程可分下面5个阶段: 1.2.1 编译过程 1 词法分析 任务:输入源程序,对构成源程序的字符串进 行扫描和分解,识别出一个个的单词。 即:读字符流的源程序,识别单词 单词:是高级语言中有实在意

6、义的最小语法单 位,它由字符构成。 1.2.1 编译过程 1 词法分析 单词的种类,一般有基本字,或者叫保留字, 标识符,常数,算符和界符等等。 识别出来的单词转换后的格式: (类号、内码) 举例说明 计算圆柱体表面积的程序段: float r,h,s; s=2*3.1416*r*(h+r); 词法分析将程序中的符号串转换为内部表示, 单词类型 单词值 基本字 float 标识符 r,h,s 常数 2,3.1416 运算符 *,+ 界符 ( ) ; , = 这样就把单词的类型和它的值区分开来。 1.2.1 编译过程 2 语法分析 任务:在词法分析的基础上,根据语言的语法 规则,把单词符号组成各

7、类的语法单位:短 语、子句、语句、过程、程序(通常表示成语 法树)。 例子 := :=+ :=* :=“(”“)” := := 可得2*3.1416*r*(h+r)是一个表达式 s= 2*3.1416*r*(h+r)是一个赋值语句 s= 2*3.1416*r*(h+r)语法树形式 H r 表达式表达式 表达式 () 表达式 表达式 r * 3.14162 表达式 * 表达式 表达式 表达式 表达式 s 赋值语句 * 1.2.1 编译过程 3 语义分析和中间代码生成 任务:对语法分析识别出的各类语法单位,分 析其含义,并进行初步翻译,生成中间代码。 3.1 语义分析 a)静态语义审查(检查上下文

8、相关性) b)类型检查,并做类型转换 1.2.1 编译过程 3 语义分析和中间代码生成 3.2 中间代码生成 源程序的内部(中间)表示 ; 结构简单、含义明确的记号系统; 通常的中间代码有:三元式、四元式、逆波兰 式、树结构 。 例如:将上述程序段翻译成四元式 四元式:3地址 序号算符左操作数 右操作数 结果 (1) (2) (3) (4) (5) * * + * = 2 T1 h T2 T4 3.1416 r r T3 - T1 T2 T3 T4 s 1.2.1 编译过程 4 代码优化 任务:对产生的中间代码进行等价变换,以 提高目标代码的时、空效率。 有时二者不能同时达到,需根据实际情况取

9、 舍。 优化主要包括局部优化和循环优化等。 例:序号 算符左操作数右操作数结果 (1) (2) (3) (4) (5) * * + * = 2 T1 h T2 T4 3.1416 r r T3 - T1 T2 T3 T4 s 序号算符左操作数右操作数结果 (1) (2) (3) * + * 6.28 h T2 r r T3 T2 T3 s 1.2.1 编译过程 5 目标代码生成 任务:把中间代码(或经优化处理之后 的中间代码)变换成特定机器上的低级 语言代码 包括机器代码、可重定位的指令代码或 汇编指令代码。 1.2.1 编译过程 6 遍 从头到尾扫描源程序(或各种形式)一遍的过 程。 从源程

10、序扫描是第一遍的输入。 每前一遍的输出是后一遍的输入。 遍可以和阶段相应,也可无关,按实际 情况而定。 1.2.1 编译过程 6 遍 所有阶段由一遍完成,编译的好,但代码不太 有效; 大多数带有优化的编译器都需要超过一遍, 更深层的优化可能需要更多遍。 1.2.1 编译过程 6 遍 一般将词法分析、语法分析和语义分析与中间代码生 成合为一遍,以语法分析器为核心。 语法分析程序 词法分析程序 语义分析与中间 代码生成程序 调用调用 源程序中间代码 1.2.2 编译程序的基本结构 1 编译程序总框图 编译程序的结构可以按照上述这五个阶段的任 务进行设计。 词法分析程序 语法分析程序 语义分析和中间

11、代码生成程序 代码优化程序 目标代码生成程序 表 格 管 理 出 错 处 理 源程序 单词符号 语法单位 中间代码 中间代码 目标代码 词法分析程序 语法分析程序 语义分析 目标代码生成程序 1.2.2 编译程序的基本结构 2 表格管理 在完成编译程序的5个过程时,还必须对符号表进行管 理 a 记录源程序中使用的名字 b 收集每个名字的各种属性信息 编译各阶段都会有构造、查找或更新有关的符 号表的动作。 要求插入、删除和访问操作比常规操作更有 效。 1.2.2 编译程序的基本结构 3 出错处理 编译的任何时候都可能发现源程序中的错误。 a 检查词法、语法和语义中的错误(静态) b 每个阶段都需

12、要类型略为不同的出错处理 c 报告出错信息和位置 d 处理和恢复 1.3 编译程序的生成方法 1 考虑的因素 熟悉源语言和目标语言 设计编译算法 选择语言 调试 相关文档资料 1.3 编译程序的生成方法 2 构造方式: a 手工构造 b 自动构造工具: LEX(lexical):词法分析程序自动生成系统 YACC(yet another compiler- compiler):语法分析程序自动生成系统 1.3 编译程序的生成方法 2 构造方式: c 自编译方式 用来编写编译器本身。 d 移植方式:把某机器的编译程序移植到另一 台机器上。 1.3 编译程序的生成方法 2 构造方式: e 交叉编译:在宿主机上编译出目标机的代 码。 可用T型图表示。 宿主语言 源语言 目标语言 本章小结 1 什么是编译程序 2 编译程序的结构,主要由5个阶段构成 3 编译程序的结构框图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育


经营许可证编号:宁ICP备18001539号-1