第1章 编译的基本概念.ppt_第1页
第1章 编译的基本概念.ppt_第2页
第1章 编译的基本概念.ppt_第3页
第1章 编译的基本概念.ppt_第4页
第1章 编译的基本概念.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.编制原则在铁钟移动3360e-mail 3360;2.我们为什么要学习编译原理?程序设计语言是计算机软件专业的重要核心。通过学习编译原理,我们可以更好地理解编程语言的内部机制,从而更好地理解和应用编程语言。编译器构造的原理和技术一直是计算机科学必不可少的专业基础知识。必修主干课程(操作系统和编译系统构成程序员和计算机之间的基本接口)。它是计算机科学非常成功的分支,也是最早成功的分支之一。3.其理论、技术和方法值得进一步研究和探讨。编制和建设正确地确立了研究的问题领域和研究方法。已经为编译器构造的某些部分开发了标准的形式技术,包括有限自动机理论、上下文无关语法、正规

2、表达式、属性语法、机器代码描述、数据流分析方程等等。编译器包含许多常用的数据结构和算法,如哈希算法、堆栈机制、堆机制、垃圾收集、集合算法、表驱动算法等。编译器的许多构造技术已经被广泛使用。学习编译原理有助于我们理解编程语言和编写优秀的软件。你为什么想学习编译原理?4.该课程是计算机专业的一门重要专业基础课,其性质和特点已被纳入国际ACM 91教程。本课程主要涉及内容高级程序设计语言、形式语言理论的基本概念,编译器的基本概念、原理和技术特点,理论性强,内容抽象,难以理解。特别是语法、形式语言和自动机、语法分析和语义分析的概念、原理和技术思想。5。教学内容和目标:1 .基本概念2。语言分析基础3。

3、词汇分析。语法分析。语义分析和中间代码生成。符号表和错误处理。运行时存储空间管理。优化和目标代码生成。教学内容和目标。教学目标:掌握形式语言理论和编译器的实现原理和技术。从形式语言理论的角度,我们应该进一步理解编程语言及其与编译器的关系。利用所学知识提高编写和调试程序的能力。编译器的概念和技术应用于通用软件设计。7,必修课,1。编程语言2。算法和数据结构:堆栈分配、堆分配、静态分配和其他存储分配方法。线性表、二叉查找树表、哈希表等数据结构。3.离散数学:集合论和数理逻辑是进一步学习形式语言和自动机理论的数学基础。4.软件工程:掌握大规模编程和工程软件生产方法。5.形式语言和自动机:相当于本课程

4、中词汇分析和语法分析的理论基础。8,第1章,编译的基本概念,9,基本概念,术语:程序和语言翻译程序和翻译模式;主机和目标机的编译过程编译器概述;编译器前端、后端和过度编译技术的应用与发展:10,1.1术语,程序:由一组指令组成的序列,称为程序源程序:用汇编语言或高级语言编写的程序称为源程序。用目标语言表示的程序可以是源语言和机器语言之间的中间语言、某台机器的机器语言或某台机器的汇编语言。翻译器:将源程序转换成目标程序的程序称为翻译器。它指的是各种语言的翻译器,包括汇编器和编译器,是汇编器、编译器和各种转换程序的总称。源程序、翻译器和目标程序之间的关系:源程序、翻译器、目标程序、源程序、翻译器和

5、目标程序,即源程序是翻译器的输入,目标程序是翻译器的输出。语言:符合某些规则(语法)的程序的集合低级语言位代码、机器语言和汇编语言的特点:它与特定的机器有关,效率高,但它使用复杂、复杂、耗时且容易出错的高级语言,如Fortran、Pascal、C和JAVA,这些高级语言独立于特定的机器,可移植性好,对用户要求低1.1术语、13.1术语、翻译程序:将源程序转换为目标程序的程序称为翻译程序。它指的是各种语言的翻译器,包括汇编器和编译器,是汇编器、编译器和各种转换程序的总称。汇编程序如果源程序是用汇编语言编写的,程序是通过翻译程序用机器语言表达的,那么翻译程序就叫做汇编程序,这个翻译过程就叫做“汇编

6、”。编译器如果源程序是用高级语言编写的,而目标程序是经过处理后得到的,那么上述翻译过程就叫做“编译”。汇编程序和编译程序都是翻译程序,主要区别是处理对象不同。因为汇编语言格式简单,所以它经常与机器语言有对应关系。汇编程序的翻译工作比编译程序简单得多。1.1术语,15,源程序编译和操作,编译或汇编阶段操作阶段,1.1术语,16,工作过程:解释器:解释和执行源程序的程序。与解释类似,不会生成目标代码。特点:执行时解释;不要生成目标代码;很简单,但是很慢。1.1术语,17.1术语,工作过程:编译器:将源程序翻译成等效的目标程序(汇编语言,机器语言)。类似于翻译。源程序,编译器,目标程序,输出数据,目

7、标程序运行程序,输入数据,18,编译器特性:1。翻译过程是功能对等的翻译;2.输出结果是一种低级语言;3.编译器与特定的语言和机器相关;4.编译后的源程序是处理对象,目标程序是处理结果;5.它既复杂又高效。1.1术语,19,编译器分类1。诊断编译器编译器用于帮助程序开发和调试的编译器。2.优化编译器侧重于提高目标代码效率的编译器。3.交叉编译器如果一个编译器产生的机器代码不同于它的主计算机。4.可变目标编译器可以在不重写编译器的机器无关部分的情况下改变目标机器。1.1术语、20、1.1术语、主机:运行编译器的计算机。目标机器:是运行由编译器生成的目标代码的计算机。21、编译过程是将高级语言程序

8、翻译成等效目标程序的过程,翻译外语材料:1。能够识别句子中的每个单词;2.分析句子的语法结构;3.根据句子的意思进行初步翻译;4.修改翻译;5.写最后的翻译。1.2编译过程,22.1.2编译过程,文献翻译与编译过程的比较,23,词法分析,语法分析,语义分析和中间代码生成,代码优化和目标代码生成,通常将编译过程分为五个基本阶段:1.2编译过程,24.1.2编译过程,word:是语言(或basic)的基本语法单位如:if,else,while)标识符(如:max,min,str)常量(如:10),(,),任务:扫描并分解源程序的字符串流,识别并输出每个字符号及其相关属性(保留字、标识符、常数、运算

9、符、分隔符),1。词汇分析,25,1.2编译过程,表达:二进制中的单词符号,遵循词汇分析的规则:描述词汇规则的有效工具是规则语法,例如:如果B1=13,那么X :=Y 1 (20个字符)| | | | | | | | | | | |基本标准运输标准运输标准,常规号码簿,算术单词符号符号符号,26,1.2编译过程,27,任务:根据语法规则(即语言的语法),将单词符号串分解成各种语法成分(如表达式,句子,函数等)。),分析其源程序的结构,并以相应的程序语言判断它是否是合法程序。语法分析(编译器的核心),1.2编译过程,语法分析遵循的规则:上下文无关语法是描述语法规则的有效工具。28,1.2编译过程

10、,上下文无关语法:3360= :3360= | * :3360=() | |,29,语法分析结果-语法树,1.2编译过程X,Y,0.618,表达式,*,z x 0.618 * y,标识符,30,1.2编译过程,任务:指定每个语法组件的含义和功能,即指定它们的生成中间代码。第三,语义分析和中间代码生成,静态:分析语法成分的意义并检查语义正确性。动态:根据相应的语义,生成中间代码(源语言和目标语言之间的中间语言形式)。31岁。生成中间代码的目的是:1 .它有利于代码优化;2.有利于目标代码的移植。中间代码的形式有四进制、三进制和逆波兰表达式;1.2编译过程,语义分析遵循的规则:它配备了计算规则,用

11、于计算每个语法产品的属性。32,1.2编译过程,其中t1,t2和t3是由编译器引入的临时工作单元,例如:y=x r*6,33,1.2编译过程,任务:对中间代码进行处理和转换,以便在最后阶段生成更高效(省时,节省空间)的目标程序。优化包括:局部优化,全局优化,循环优化,4。优化,34,1.2编译过程,例如,y=x r*6,35,1.2编译过程,5。目标代码生成,任务:将优化的中间代码转换成目标机器的低级语言代码。movr,r1mul # 6.0,r1movx,r2addr1,r2movr2,y,36,编译过程概述:1.2编译过程,37,根据不同的逻辑功能,编译过程可以分为五个基本阶段,相应地,实

12、现整个编译过程的编译器可以分为五个逻辑阶段(即五个逻辑子过程)。在每个阶段,应该有:符号表管理和错误处理,1.3编译器的逻辑结构,38,错误诊断,以及报告用户错误的性质和位置的能力。错误处理能力是衡量编译器质量的重要指标。在表格中登记源程序中的信息和编译过程中产生的信息。查找表:在后续的编译过程中,我们应该不断地查找这些表中的信息。符号表管理,错误处理,1.3编译器的逻辑结构,39,典型的编译器有7个逻辑部分,S.P,S.P,O.P,1.3编译器的逻辑结构,40,根据编译器各部分的功能,编译器分为前端和后端,前端:与源程序相关的编译器部分通常称为前端分析部分。包括词法分析、语法分析、语义分析和

13、中间代码生成。特性:与源语言相关的后端;与目标机器相关的部分称为后端集成部分。包括:代码优化,代码生成功能:与目标机相关的编译器的前端和后端,1.4编译器的前端,后端和通路,41,第一通路和第二通路,标准普尔中间形式1,标准普尔中间形式2,C2,C1,标准普尔,O.P .和前一通路的结果从头到尾扫描源程序(包括源程序的中间形式),并做相关处理生成新的源程序或目标程序的中间形式1.4编译器的前端、后端和通道,42。一遍扫描编译器被称为一遍扫描编译器,并且遍的划分取决于具体情况(内存的大小、源语言的复杂性和目标程序的质量)。优点:1 .降低对内存容量的要求;2.该编译器结构清晰,功能独立,互连简单

14、;3.缺点:增加读写中间文件的频率,降低效率;1.4编译器的前端、后端和通道;4.应用:大多数软件工具必须使用编译技术和方法来开发。语法引导的结构化编辑器程序格式化工具软件测试工具静态分析器:无法执行的代码,定义后未被引用的变量的动态测试工具:程序理解工具,用于与运行后的预期结果进行比较:高级语言的翻译工具,用于确定调用关系和绘制流程图,1.5编译技术的应用和发展,44,其他应用:文本编辑器,信息检索系统,模式识别器,排版和绘图系统,1.5编译技术的应用和发展,45。并行编译技术旨在提高并行计算机体系结构的性能,满足超大规模计算日益增长的需求。两种实现方法:并行化串行程序和通过重构技术直接编写并行程序。由于目标计算机的指令系统不同于主计算机的指令系统,应用程序的源程序在编译时在主计算机上生成目标计算机代码,这称为交叉编译。开发:1.5编译技术的应用与开发,46.1。判断下列陈述是否正确。(1)从高级语言程序到低级语言程序的转换是基于语义的等价转换;(2)优化部分的编译器执行效率高;(3)由于编译器和解释器的功能不同,它们的实现技术也完全不同。(4)编译器和解释器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论