第1章编译的基本概念精选文档.ppt
《第1章编译的基本概念精选文档.ppt》由会员分享,可在线阅读,更多相关《第1章编译的基本概念精选文档.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1章编译的基本概章编译的基本概念念1本讲稿第一页,共四十八页为什么要学习编译原理为什么要学习编译原理l程序设计语言是计算机软件专业的重要核心。通过学习编译原程序设计语言是计算机软件专业的重要核心。通过学习编译原理可以更好地理解程序语言的内部机制理可以更好地理解程序语言的内部机制,从而更好地理解和运从而更好地理解和运用程序设计语言。用程序设计语言。l编译程序构造的原理和技术一直属于计算机科学必备的专编译程序构造的原理和技术一直属于计算机科学必备的专业基础知识。业基础知识。必修主干课程必修主干课程(操作系统和编译系统构成程序(操作系统和编译系统构成程序设计者与计算机之间的基本界面)。设计者与计
2、算机之间的基本界面)。l是计算机科学中一个非常成功的分支,也是最早获得成是计算机科学中一个非常成功的分支,也是最早获得成功的分支之一。功的分支之一。2本讲稿第二页,共四十八页l它的理论、技术和方法值得深入研究和学习它的理论、技术和方法值得深入研究和学习编译构造正确地建立了研究的问题领域和研究方式。编译构造正确地建立了研究的问题领域和研究方式。针对编译程序构造的某些部分已经开发了标准的形式化技术,包括有限自针对编译程序构造的某些部分已经开发了标准的形式化技术,包括有限自动机理论、上下文无关文法、正规表达式、属性文法、机器代码描述、数动机理论、上下文无关文法、正规表达式、属性文法、机器代码描述、数
3、据流分析方程式等。据流分析方程式等。编译程序包含许多普遍使用的数据结构和算法,例如哈希算法、栈机制、编译程序包含许多普遍使用的数据结构和算法,例如哈希算法、栈机制、堆机制、垃圾收集、集合算法、表驱动算法等。堆机制、垃圾收集、集合算法、表驱动算法等。编译程序的许多构造技术已经得到了广泛的应用。编译程序的许多构造技术已经得到了广泛的应用。学习编译原理有助于我们理解程序设计语言,编写优秀的软件。学习编译原理有助于我们理解程序设计语言,编写优秀的软件。为什么要学习编译原理为什么要学习编译原理3本讲稿第三页,共四十八页课程的性质和特点课程的性质和特点l性质性质是计算机专业的重要的是计算机专业的重要的专业
4、基础课专业基础课,被列入国际,被列入国际ACM 91ACM 91教程。教程。l本课程主要涉及内容本课程主要涉及内容高级程序设计语言高级程序设计语言形式语言理论形式语言理论的基本概念的基本概念构造编译程序构造编译程序的基本概念、原理和技术的基本概念、原理和技术l特点特点理论性强、内容抽象,理解难度较大。尤其是文法、形式语言及自动理论性强、内容抽象,理解难度较大。尤其是文法、形式语言及自动机、语法分析及语义分析的概念、原理和技术思想。机、语法分析及语义分析的概念、原理和技术思想。4本讲稿第四页,共四十八页教学内容和教学目标教学内容和教学目标教学内容:教学内容:1 1、基本概念、基本概念 2 2、语
5、言分析基础、语言分析基础 3 3、词法分析、词法分析 4 4、语法分析、语法分析 5 5、语义分析与中间代码生成、语义分析与中间代码生成 6 6、符号表与错误处理、符号表与错误处理 7 7、运行时存储空间管理、运行时存储空间管理 8 8、优化及目标代码生成、优化及目标代码生成5本讲稿第五页,共四十八页教学内容和教学目标教学内容和教学目标教学目标:教学目标:掌握形式语言理论与编译程序的实现原理与技术。掌握形式语言理论与编译程序的实现原理与技术。从形式语言理论的角度,进一步认识与理解程序设计语言从形式语言理论的角度,进一步认识与理解程序设计语言及其与编译程序的联系。及其与编译程序的联系。利用学习到
6、的知识,增强编写和调试程序的能力。利用学习到的知识,增强编写和调试程序的能力。将编译程序概念和技术应用于一般软件设计之中。将编译程序概念和技术应用于一般软件设计之中。6本讲稿第六页,共四十八页先修课程先修课程1.1.程序设计语言程序设计语言2.2.算法与数据结构:算法与数据结构:栈分配、堆分配、静态分配等各种存储分栈分配、堆分配、静态分配等各种存储分 配方式。线性表、二叉查找树、哈希表等配方式。线性表、二叉查找树、哈希表等 多种数据结构。多种数据结构。3.3.离散数学:离散数学:集合论与数理逻辑是进一步学习形式语言与自动集合论与数理逻辑是进一步学习形式语言与自动 机理论的数学基础。机理论的数学
7、基础。4.4.软件工程学:软件工程学:掌握大型程序设计及工程化的软件生产方法。掌握大型程序设计及工程化的软件生产方法。5.5.形式语言与自动机:形式语言与自动机:相当于本课程中词法分析与语法分析的相当于本课程中词法分析与语法分析的 理论基础。理论基础。7本讲稿第七页,共四十八页第一章第一章编译的基本概念编译的基本概念8本讲稿第八页,共四十八页基本概念基本概念l术语:术语:程序和语言程序和语言翻译程序和翻译方式翻译程序和翻译方式宿主机与目标机宿主机与目标机l编译过程概述编译过程概述l编译程序的逻辑结构编译程序的逻辑结构l编译程序的前端、后端、遍编译程序的前端、后端、遍l编译技术的应用与发展编译技
8、术的应用与发展9本讲稿第九页,共四十八页1.1 1.1 术语术语程序:程序:一组指令组成的序列,称为程序一组指令组成的序列,称为程序源程序:源程序:用用汇编语言汇编语言或或高级语言高级语言编写的程序称为源程序编写的程序称为源程序目标程序:目标程序:用用目标语言目标语言所表示的程序,可以是介于源语言和所表示的程序,可以是介于源语言和 机器语言之间的机器语言之间的“中间语言中间语言”,可以是某种机器,可以是某种机器 的的机器语言机器语言,也可以是某机器的也可以是某机器的汇编语言汇编语言。翻译程序:翻译程序:将将源程序源程序转换为转换为目标程序目标程序的程序称为翻译程序。的程序称为翻译程序。它是指各
9、种语言的翻译器,包括汇编程序和编译它是指各种语言的翻译器,包括汇编程序和编译 程序,是汇编程序、编译程序以及各种变换程序程序,是汇编程序、编译程序以及各种变换程序 的总称。的总称。10本讲稿第十页,共四十八页源程序、翻译程序、目标程序源程序、翻译程序、目标程序三者关系:三者关系:源程序源程序翻译程序翻译程序目标程序目标程序SOURCEPROGRAMTRANSLATEROBJECTPROGRAM即源程序是翻译程序的输入,目标程序是翻译程序的输出。即源程序是翻译程序的输入,目标程序是翻译程序的输出。1.1 1.1 术语术语11本讲稿第十一页,共四十八页语言:语言:符合一定规则(文法)的程序的集合符
10、合一定规则(文法)的程序的集合 低级语言低级语言 字位码、机器语言、汇编语言字位码、机器语言、汇编语言 特点:与特定的机器有关,功效高,但使用复杂、繁特点:与特定的机器有关,功效高,但使用复杂、繁 琐、费时、易出错琐、费时、易出错 高级语言高级语言 Fortran、Pascal、C、JAVA等等 特点:不依赖具体机器,移植性好、对用户要求低、易特点:不依赖具体机器,移植性好、对用户要求低、易 使用、易维护等。使用、易维护等。1.1 1.1 术语术语12本讲稿第十二页,共四十八页1.1 1.1 术语术语翻译程序:翻译程序:将将源程序源程序转换为转换为目标程序目标程序的的 程序称为翻译程序。它是指
11、程序称为翻译程序。它是指 各种语言的翻译器,包括汇各种语言的翻译器,包括汇 编程序和编译程序,是汇编编程序和编译程序,是汇编 程序、编译程序以及各种变程序、编译程序以及各种变 换程序的总称。换程序的总称。13本讲稿第十三页,共四十八页l汇编程序汇编程序若源程序用汇编语言书写,经过翻译程序得到用机器语言表示若源程序用汇编语言书写,经过翻译程序得到用机器语言表示的程序,这时的翻译程序就称之为汇编程序,这种翻译过程称为的程序,这时的翻译程序就称之为汇编程序,这种翻译过程称为“汇编汇编”。l编译程序编译程序若源程序是用高级语言书写,经加工后得到目标程序,上述翻译若源程序是用高级语言书写,经加工后得到目
12、标程序,上述翻译过程称过程称“编译编译”。汇编程序与编译程序都是汇编程序与编译程序都是翻译程序翻译程序,主要区别是加工对象的,主要区别是加工对象的不同。由于汇编语言格式简单,常与机器语言之间有一一对不同。由于汇编语言格式简单,常与机器语言之间有一一对应的关系。汇编程序所要做的翻译工作比编译程序简单的多应的关系。汇编程序所要做的翻译工作比编译程序简单的多。1.1 1.1 术语术语14本讲稿第十四页,共四十八页源程序的编译和运行源程序的编译和运行编译或汇编阶段编译或汇编阶段运行阶段运行阶段源程序源程序目标程序目标程序编译程序编译程序或汇编程序或汇编程序输出数据输出数据目标程序目标程序+运行子程序运
13、行子程序输入数据输入数据1.1 1.1 术语术语15本讲稿第十五页,共四十八页工作过程:工作过程:解释程序:解释程序:对源程序边解释,边执行的程序。类似于口译,对源程序边解释,边执行的程序。类似于口译,不生成目标代码。不生成目标代码。输出数据输出数据解释程序解释程序输入数据输入数据源程序源程序特点:边解释,边执行;特点:边解释,边执行;不生成目标代码;不生成目标代码;比较简单,但速度慢。比较简单,但速度慢。1.1 1.1 术语术语16本讲稿第十六页,共四十八页1.1 1.1 术语术语工作过程:工作过程:编译程序:编译程序:把源程序翻译成把源程序翻译成等价的等价的目标程序(汇编语言,机器语言)。
14、目标程序(汇编语言,机器语言)。类似于笔译。类似于笔译。源程序源程序编译程序编译程序目标程序目标程序输出数据输出数据目标程序目标程序+运行程序运行程序输入数据输入数据17本讲稿第十七页,共四十八页编译程序的特点:编译程序的特点:1、翻译过程是一种功能上、翻译过程是一种功能上等价等价的翻译;的翻译;2、输出结果是低级语言;、输出结果是低级语言;3、编译程序与具体的语言和机器有关;、编译程序与具体的语言和机器有关;4、被编译的源程序是被加工的对象,、被编译的源程序是被加工的对象,目标程序是加工的结果;目标程序是加工的结果;5、比较复杂,效率高。、比较复杂,效率高。1.1 1.1 术语术语18本讲稿
15、第十八页,共四十八页l编译程序的分类编译程序的分类1、诊断编译程序、诊断编译程序用于帮助程序开发和调试的编译程序。用于帮助程序开发和调试的编译程序。2、优化编译程序、优化编译程序着重于提高目标代码效率的编译程序。着重于提高目标代码效率的编译程序。3、交叉编译程序、交叉编译程序如果一个编译程序产生不同于其宿主机的如果一个编译程序产生不同于其宿主机的机器代码。机器代码。4、可变目标编译程序、可变目标编译程序如果不需重写编译程序中与机器无关的部如果不需重写编译程序中与机器无关的部分就能改变目标机。分就能改变目标机。1.1 1.1 术语术语19本讲稿第十九页,共四十八页1.1 1.1 术语术语l宿主机
16、:运行编译程序的计算机。宿主机:运行编译程序的计算机。l目标机目标机:运行编译程序所产生目运行编译程序所产生目 标代码的计算机。标代码的计算机。20本讲稿第二十页,共四十八页编译过程是将编译过程是将高级语言程序高级语言程序翻译为等价的翻译为等价的目标程序目标程序的过程的过程翻译外文资料:翻译外文资料:1、能识别出句子中的每个单词;、能识别出句子中的每个单词;2、分析句子的语法结构;、分析句子的语法结构;3、根据句子的含义进行初步翻译;、根据句子的含义进行初步翻译;4、对译文进行修饰;、对译文进行修饰;5、写出最后的译文。、写出最后的译文。1.2 1.2 编译过程编译过程21本讲稿第二十一页,共
17、四十八页1.2 1.2 编译过程编译过程文献翻译与编译过程的比较文献翻译与编译过程的比较文献翻译文献翻译编译程序编译程序分析分析1 1、识别单词、识别单词2 2、分析句子、分析句子3 3、根据语义进行初步翻译、根据语义进行初步翻译1 1、词法分析、词法分析2 2、语法分析、语法分析3 3、语义分析、生成中间代码、语义分析、生成中间代码综合综合1 1、修辞加工、修辞加工2 2、写出译文、写出译文1 1、代码优化、代码优化2 2、目标代码生成、目标代码生成22本讲稿第二十二页,共四十八页词法分析词法分析语法分析语法分析语义分析及中间代码生成语义分析及中间代码生成代码优化代码优化目标代码生成目标代码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 基本概念 精选 文档
限制150内