第一章 编译程序概述

第一章 编译程序概述

ID:38516215

大小:261.50 KB

页数:22页

时间:2019-06-14

第一章 编译程序概述_第1页
第一章 编译程序概述_第2页
第一章 编译程序概述_第3页
第一章 编译程序概述_第4页
第一章 编译程序概述_第5页
资源描述:

《第一章 编译程序概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理合肥计算机科学与技术系吴晓琴课程简介先行课程:高等数学、C(PASCAL)、离散数学、汇编语言、数据结构编译原理课程应用领域编译器的设计一般的软件设计例如:文本编辑器、信息检索系统、模式识别器排版、绘图系统程序验证器为什么要设置编译原理课程?1、加深对程序内部执行过程的理解2、为了进一步编好程序编译原理吕映芝清华大学出版社编译程序设计原理杜淑敏等北京大学出版社编译原理李赣生等清华大学出版社编译程序构造原理和实现技术金成植高等教育出版社程序设计语言编译程序陈火旺等国防工业出版社CompilerC

2、onstructionPrincipleandPratice编译原理及实践KennethC.Louden机械工业出版社参考书籍参考书籍编译原理张吕映芝素琴清华大学出版社Returnhttp://ultra1.wuhee.edu.cn/compiler/compiler.htmlhttp://edu.netbig.com/kaoyan/e4/245/20000524/gong.htmhttp://www.artech.com.cn/test/luntan/os.asp参考网站第一章编译程序概述1.1什么

3、是编译程序1.2编译程序的结构1.3编译程序的设计实现1.4经典的编译程序过程式语言Fortran,Pascal,C函数式语言Lisp逻辑式语言Prolog对象式语言C++第一章编译程序概述1.1什么是编译程序1.程序设计语言程序设计语言高级语言低级语言(面向机器的语言)汇编语言机器语言2.编译和解释程序目标程序源程序编译程序初始数据计算结果源程序解释程序初始数据计算结果翻译程序:是指这样的一种程序,它能够把一种语言程序(源语言程序)转换成另一种功能等价的语言程序(目标语言程序)。编译程序:是一种翻译

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

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

6、与目标机有关,而与源语言无关的编译程序遍(趟):是对源程序或源程序的中间结果从头到尾扫描一遍,并作有关加工处理,生成新的中间结果或目标程序。宿主机:运行编译程序的计算机称为宿主机。目标机:运行编译程序所产生的目标代码的计算机成为目标机。相关概念1.3编译技术和软件工具一、编译技术的发展1950S早期:算术工式译成机器代码。1950S中期:FORTRAN编译系统。1950S末期:自动生成工具出现,如:LEX、YACC。1960S:自展技术。1971年:用自展技术生成PASCAL编译程序。现代:并行编译技

7、术。二、编译技术与软件工具1、先进的软件开发技术和软件工具能提高编程效率、缩短调试时间。2、编译程序本身是一种软件工具。3、大部分软件工具的开发常用到编译技术和方法。4、进行源程序处理的软件工具实质上都在不同程度上用到了编译程序各个部分的技术和方法。1.4编译程序的构造一、编译程序的构造途径1、用某种程序语言编写;2、用编译程序自动构造工具构造。3、通过现有的编译基础设施进行改造和组装。二、T型图T型图是用来表示一个编译程序所涉及到的三个方面的语言的一种工具,将源语言S通过用语言H书写的编译器翻译成目

8、标语言T的编译程序可用如下T型图THST表示。T型图的两种组合方式:三、编译程序的自展1、方法:用“滚雪球”的方式生成编译程序。2、思想:先用目标机的汇编语言或机器语言书写源语言的一个子集的编译程序,再用这个子集作为书写语言(属于高级语言),实现源语言的编译程序。例:设C1∈C目标机A的语言为A,则两层自展构造实现语言C对应A机器的编译程序过程可描述为如下:其自展过程:用语言A编写语言C1的编译程序TAC1A;再用C1书写语言C的编译程序TC1CA;最后

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。