第一章 编译程序概述

上传人:xzh****18 文档编号:51472683 上传时间:2018-08-14 格式:PPT 页数:22 大小:261.50KB
返回 下载 相关 举报
第一章 编译程序概述_第1页
第1页 / 共22页
第一章 编译程序概述_第2页
第2页 / 共22页
第一章 编译程序概述_第3页
第3页 / 共22页
第一章 编译程序概述_第4页
第4页 / 共22页
第一章 编译程序概述_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《第一章 编译程序概述》由会员分享,可在线阅读,更多相关《第一章 编译程序概述(22页珍藏版)》请在金锄头文库上搜索。

1、编译原理 合肥计算机科学与技术系吴晓琴课程简介先行课程:先行课程:高等数学、高等数学、 (PASCAL)(PASCAL)、离散数学、离散数学、 汇编语言、数据结构汇编语言、数据结构编译原理课程应用领域编译原理课程应用领域 编译器的设计编译器的设计 一般的软件设计一般的软件设计例如:例如: vv文本编辑器、信息检索系统文本编辑器、信息检索系统 、模式识别器、模式识别器 vv排版、绘图系统排版、绘图系统 vv程序验证器程序验证器为什么要设置编译原理课程?为什么要设置编译原理课程? 1 1、加深对程序内部执行过程的理解、加深对程序内部执行过程的理解 2 2、为了进一步编好程序、为了进一步编好程序编译

2、原理编译原理 吕映芝吕映芝 清华大学出版社清华大学出版社 编译程序设计原理编译程序设计原理 杜淑敏等杜淑敏等 北京大学出版社北京大学出版社编译原理编译原理 李赣生等李赣生等 清华大学出版社清华大学出版社编译程序构造原理编译程序构造原理 和实现技术和实现技术 金成植金成植 高等教育出版社高等教育出版社程序设计语言编译程序程序设计语言编译程序 陈火旺等陈火旺等 国防工业出版社国防工业出版社Compiler Construction Compiler Construction Principle and Principle and PraticePratice 编译原理及实践编译原理及实践 Kenn

3、eth Kenneth C.LoudenC.Louden 机械工业出版社机械工业出版社参参 考考 书书 籍籍参参 考考 书书 籍籍编译原理编译原理 张吕映芝素琴张吕映芝素琴 清华大学出版社清华大学出版社 Returnhttp:/ /gong.htm/gong.htmhttp:/ 第一章 编译程序概述1.1 什么是编译程序 1.2 编译程序的结构 1.3 编译程序的设计实现 1.4 经典的编译程序过程式语言过程式语言 Fortran,Pascal,CFortran,Pascal,C 函数式语言函数式语言 LispLisp 逻辑式语言逻辑式语言 PrologProlog 对象式语言对象式语言 C+

4、C+第一章 编译程序概述1.1 什么是编译程序 . 程序设计语言程序设程序设 计语言计语言 高级语言高级语言低级语言(面向机器的语言低级语言(面向机器的语言 )汇编语言汇编语言机器语言机器语言2 2 .编译和解释程序编译和解释程序目标目标 程序程序源源 程程 序序编编 译译 程程 序序初始数据初始数据计计 算算 结结 果果源程序源程序解解 释释 程程 序序初始数据初始数据计计 算算 结结 果果翻译程序:是指这样的一种程序,它能够把一 种语言程序(源语言程序)转换成另一种功能等价 的语言程序(目标语言程序)。编译程序:是一种翻译程序,其源程序是高级语 言,目标语言程序是低级语言。通常是一次性翻

5、译方式。如TC等高级语言编译程序。解释程序:也是一种翻译程序,它与编译程序的 区别:立即执行源程序,通常是逐句翻译执行, 如BASIC、SQL、JAVA的BYTECODE解释程序 等。功能工作结果实现技术上解释 程序源程序的一 个执执行系统源程序的 执执行结结果执行中间代码编译 程序源程序的一 个转换转换 系统源程序的 目标标代码码把中间代码转 换成目标程序解释程序和编译程序的区别解释程序和编译程序的区别解释程序和编译程序的根本区别根本区别: 是否生成目标代码3 3、高级语言程序的处理过程、高级语言程序的处理过程高级程序设计语言程序的典型处理过程如下图所示: 需预处理源程序预处理源程序源程序编

6、译程序目标语言(汇编语言)汇编程序机器码装配/连接 绝对机器代码可再装配 目标文件机器码翻译外文资料编译源程序分析阅读原文 识别单词 分析句子输入并扫描源程序 词法分析 语法分析综合修辞加工 写出译文代码优化 目标代码生成1. 编译程序的结构翻译外文资料与编译源程序进行类比编译程序的功能和组织结构表 处 理词 法 分 析源 程 序目 标 程 序错 误 处 理语 法 分 析语 义 分 析目 标 代 码 生 成前 端后 端中 间 代 码 优 化中 间 代 码 生 成编译程序的前端前端:与源语言有关,而与目标机无关的编译程序编译程序的后端后端:与目标机有关,而与源语言无关的编译程序遍(趟)遍(趟):

7、是对源程序或源程序的中间结果从头 到尾扫描一遍,并作有关加工处理,生成新的中间 结果或目标程序。宿主机宿主机:运行编译程序的计算机称为宿主机。 目标机目标机:运行编译程序所产生的目标代码的计算机 成为目标机。相关概念1.3 编译技术和软件工具 一、编译技术的发展 1950S早期:算术工式译成机器代码。 1950S中期:FORTRAN编译系统。 1950S末期:自动生成工具出现,如:LEX、 YACC。 1960S:自展技术。1971年:用自展技术生成PASCAL编译程序。 现代:并行编译技术。二、编译技术与软件工具 1、先进的软件开发技术和软件工具能提 高编程效率、缩短调试时间。 2、编译程序

8、本身是一种软件工具。 3、大部分软件工具的开发常用到编译技 术和方法。 4、进行源程序处理的软件工具实质上都 在不同程度上用到了编译程序各个部分的 技术和方法。 1.4 编译程序的构造 一、编译程序的构造途径1、用某种程序语言编写;2、用编译程序自动构造工具构造。3、通过现有的编译基础设施进行改造和 组装。二、T型图 T型图是用来表示一个编译程序所涉及到 的三个方面的语言的一种工具,将源语言 S通过用语言H书写的编译器翻译成目标语 言T的编译程序可用如下T型图THST表示。T型图的两种组合方式: 三、编译程序的自展 1、方法:用“滚雪球”的方式生成编译程序。 2、思想:先用目标机的汇编语言或机器语言 书写源语言的一个子集的编译程序,再用这个 子集作为书写语言(属于高级语言),实现源 语言的编译程序。 例:设 C1C目标机A的语言为A ,则两层自展 构造实现语言C对应A机器的编译程序过程可 描述为如下:其自展过程:用语言A编写语言C1的编译程序 TAC1A;再用 C1书写语言C的编译程序TC1CA ;最后再将TC1CA经过TAC1A编 译得到 TACA 。 1.4 经典的编译程序Pascal编译程序C编译程序Fortran 编译程序

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号