第1章编译原理概述

上传人:jin****ng 文档编号:205319194 上传时间:2023-04-28 格式:DOCX 页数:8 大小:67.18KB
收藏 版权申诉 举报 下载
第1章编译原理概述_第1页
第1页 / 共8页
第1章编译原理概述_第2页
第2页 / 共8页
第1章编译原理概述_第3页
第3页 / 共8页
资源描述:

《第1章编译原理概述》由会员分享,可在线阅读,更多相关《第1章编译原理概述(8页珍藏版)》请在装配图网上搜索。

1、第 1 章 编译原理概述【教学目的】了解编译程序的概念、编译的过程、编译程序的结构、编译程序的 生成过程和构造工具。【教学内容】正确了解什么是编译程序,了解编译程序工作的基本过程及各阶段 的基本任务,熟悉编译程序总体框架结构。【教学重点】编译程序的概念,编译程序工作的基本过程及各阶段的基本任务, 熟悉编译程序总体框架结构。【教学难点】编译过程和编译程序的结构。【教学方法与手段】板书【课时分配】2 学时教学单元教学内容学时学时分配讲授讨论习 题1-1编译原理概述22高级语翻译-机器语运行-结果言程序言程序教学过程】教学单元|IT学时|2由于学生之前已经学过C语言课程,可以通过例举C语言编译过程引

2、入编译 程序起到的作用。编译程序是现代计算机系统的基本组成部分之一,而且多数计算机系统都配 有不止一个高级语言,所以编译原理对于今后参加软件工作,有着很大的裨益。板书内容1 编译程序概述1. 1什么是编译程序从功能上看,一个编译程序就是一个语言翻译程序。定义:语言翻译程序是把一种语言(称作源语言)书写的程序翻 译成另一种语言(称作目标语言)的等价程序。翻译程序所执行的转换工作图举例:汇编程序是一个翻译程序。它把汇编语言程序翻译成机器 语言程序。简单介绍汇编语言和机器语言的概念以及优缺点。定义:编译程序(compiler)是某一种高级语言程序(如 FORTRAN、Pascal或C语言程序)翻译成

3、另一种低级语言(如 汇编语言或机器语言程序)的等价程序。编译程序编译程序所执行的转换工作图编译程序的重要性之一体现在它使得多数用户不必考虑与 机器有关的繁琐细节,使程序员和程序专家独立于机器,这对于 当今机器的数量和种类持续不断的增长年代尤为重要。分析教材第1页的图1.2,高级语言程序的处理过程。简单介绍编译程序的发展历史(教材第2页)。1.2编译过程和编译程序的结构1.2.1编译过程概述教学教法本节教学目 的:通过直观 印象,引入编 译程序概念简要说明为 什么要使用 编译程序:高 级程序语言 不能直接运 行在机器上, 而低级语言 代码书写繁 琐。分析高级语 言程序的典 型处理过程, 从中进一

4、步 了解编译程 序的作用。编译程序完成从源程序到目标程序的翻译工作,是一个复杂的整体过程。从概念上讲,一个编译程序的整个工作过程划分成 阶段进行的,每个阶段将源程序的一种表示形式转换成另一种表 示形式,各阶段进行的操作在逻辑上是紧密连接在一起的。土词法分析a. 识别出句子中的一个个单词;b. 分析句子的语法结构;c. 根据句子的含义进行初步翻译;d. 对译文进行修饰;语义分析 中产代码e. 写出最后的译文。优化j目标代码可以看出,编译过程划分为六个阶段。一、词法分析1、任务:输入源程序,对构成源程序的字符串进行扫描和分解, 识别出一个个单词符号。定义:单词符号是指逻辑上紧密相连的一组字符,这些

5、字符具有 集体含义。举例说明什么是单词符号:如标志符(由字母开头,后跟字 母或数字字符的字符序列组成的一种单词)、保留字、算符、界 符等都是单词符号。2、依循的原则:构词规则3、描述工具:有限自动机例如某程序片断:begin var sum, first, count: real;sum:二 first+count*10 end.保留字:begin,var,real,end 标识符:sum,firs t,cou nt 算符::=,+,* 整常数:10 界符:.使用id1,id2,id3分别表示sum,first,count这3个标志符 的内容形式,则经过词法分析后上述程序片断中的符值语句 su

6、m:二 first+count*10,则表示为 id1:=id2+id3*10。二、语法分析对照英文翻 译成中文的 过程来说明 编译的具体 过程。通过源程序 在不同阶段 所被转换成 的表示形式 来介绍各阶 段的主要任 务。5个字符 b,e,g,i,n 构 成1个称为保 留字的单词 begin,这些 单词间的空 格在词法分 析阶段都被 过滤掉了。1、任务:在词法分析的基础上,根据语言的语法规则把单词序列 分解成各类语法短语,如“程序” “语句”、“表达式”等。一般这种语法短语也称语法单元语法,可表示为语法树。例如:上述程序段中的单词序列经过语法分析得知其是Pascal 语言的“赋值语句”表示成第

7、3页的图1.4和图1.5语法树。2、依循的原则:语法规则,即描述程序结构的规则。例如:程序的结构通常是由递归规则表示(具体见教材第3 页)。3、描述工具:上下文无关文法4、词法分析和语法分析比较共同:本质上都是对源程序的结构进行分析。区别:词法分析的任务仅对源程序进行线性扫描即可完成;但这 种线性扫描不能用于识别递归定义的语法成分。三、语义分析1、任务:审查源程序有无语义错误,为代码生成阶段收集类型信 息。例如:有的编译程序对实数用作数组下标的情况报告错误; 又有的语言规范对象可被强制,当运算“ *”时,如果两个运算 数分别为实型和整型,那么编译程序将整型强制转换成实型而不 认为源程序错。如图

8、教材第4页图1.6。四、中间代码生成1、任务:对各类不同语法范畴按语言的语义进行初步翻译。 定义:中间代码是一种结构简单、含义明确的记号系统。 中间代码:有三元式,四元式,树形结构等四元式形式:(运算符,运算对象1,运算对象2,结果)2、依循的原则:语义规则五、代码优化1、任务:对于前阶段产生的中间代码进行加工变换或进行改造, 以期在最后阶段产生更高效的目标代码,即可以省时间和省空 间。2、依循的原则:程序的等价变换规则六、目标代码生成1、任务:把中间代码变换成特定机器上的目标代码。2、目标代码的三种形式:绝对指令代码:可直接运行可重新定位指令代码:需要连接装配汇编指令代码:需要进行汇编通过语

9、法分 析确定整个 输入串是否 构成一个语 法上正确的 程序。举例:匹配表 达式中的括 号。分析教材第5 页图1.7。具体分析教 材第5页图1.8,明确代 码优化的一 些作用。分析教材第5 页图1.9。编译的最后阶段与硬件系统结构和机器指令的含义有关。1.2.2编译程序的结构1、编译程序总框编译过程除了上述六个主要阶段,还必须包括“表格管理程 序”和“出错处理程序”下图为一个典型的编译程序结构框图。强调表格管 理和出错处 理与上述六 个阶段都有 联系。2、表格和表格管理常见的表格:符号名表,常数表,标号表,入口名表,过程引用表。格式:名字信息源语言 禺辱 中间语言卜后斗目标语言优点:减少对 内存

10、容量的 要求,程序逻 辑结构清晰; 优化更充分, 有利于移植。缺点:编译程 序运行的效 率低。3、出错处理出错处理程序:发现源程序中的错误,把有关错误信息报告给用 户。1.2.3编译阶段的组合1.2.1节讨论的编译过程阶段划分是编译程序的逻辑组织。也常把编译程序分为前端(front end)和后端(back end)。 介绍前端、后端概念,以及这样划分编译程序的优缺点。遍的定义,强调阶段和遍的概念不同。1.3解释程序和一些软件工具定义:解释程序把源语言写的源程序作为输入,但不产生目标程 序,而是边解释边执行源程序本身。分析教材第7页图1.12编译程序和解释程序的不同工作模 式。1.3.2处理源

11、程序的软件工具简单介绍处理源程序的几种软件工具。1、语言的结构化编辑器。2、语言程序的调试工具。3、程序格式化工具。4、语言程序测试工具。5、程序理解工具。6、高级语言之间的转换工具。1.3.3编译程序的生成过程1、以汇编语言和机器语言为工具优点:可以针对具体的机器,充分发挥计算机的系统功能。生 成的程序效率高。简要介绍编 译程序和解 释程序处理 时分别需要 存储区中存 放的不同表 格。缺点:程序难读、难写、易出错、难维护、生产的效率低。2、高级语言书写优点:程序易读、易理解、容易维护、生产的效率高。缺点:难以充分发挥计算机的系统功能,生成的程序效率低。3、编译程序书写系统自动产生编译程序L语言的语法描述语义描述目标语言 或机器描述编译程序自动产生器+ L语言的编译程序1.4关于学习编译原理的意义1、学习编译程序构造原理,技术2、更好地理解高级语言3、编译的原理和方法有助于构造一些实用的工具单元小结本单元主要介绍了编译原理的一些基本概念,要掌握编译原 理的几个基本阶段,这是编译原理的基础。课外作业:教材第11页:第1、2、3、4题

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!