书签 分享 收藏 举报 版权申诉 / 36
上传文档赚钱

类型第1章-编译程序概论引论课件.ppt(36页)

  • 上传人(卖家):ziliao2023
  • 文档编号:7742110
  • 上传时间:2024-08-11
  • 格式:PPT
  • 页数:36
  • 大小:616KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第1章-编译程序概论引论课件.ppt(36页)》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    编译程序 概论 引论 课件
    资源描述:

    1、第第1 1章章 编译程序概论编译程序概论2023-9-20第1章 编译原理概论Page 2第第1章章 编译原理概论编译原理概论学习目标学习目标 掌握:掌握:编译的各个阶段编译的各个阶段 理解:理解:编译程序的概念编译程序的概念 了解:了解:解释器,编译程序的结构和组合解释器,编译程序的结构和组合2023-9-20第1章 编译原理概论Page 3第第1章章 编译原理概论编译原理概论l编译是什么?编译是什么?l编译有什么用编译有什么用/为什么需要编译?为什么需要编译?l编译怎么实现这个功能编译怎么实现这个功能/作用?作用?2023-9-20第1章 编译原理概论Page 4第第1章章 编译原理概论编

    2、译原理概论回想使用回想使用VC 6.0运行程序的过程:运行程序的过程:编译编译链接链接执行执行检查词法是否正确检查词法是否正确检查语法是否正确检查语法是否正确将正确的高级语言生成机器能理解的目标代码将正确的高级语言生成机器能理解的目标代码机器语言机器语言汇编语言汇编语言2023-9-20第1章 编译原理概论Page 5第第1章章 编译原理概论编译原理概论1.1 什么是编译程序什么是编译程序1.2 编译过程概述编译过程概述1.3 编译程序的结构编译程序的结构1.4 编译阶段的组合编译阶段的组合1.5 编译技术和软件工具编译技术和软件工具2023-9-20第1章 编译原理概论Page 6 1.1

    3、什么是编译程序什么是编译程序1、翻译程序:、翻译程序:2、编译程序:、编译程序:3、汇编程序:、汇编程序:高级语言程序高级语言程序(源 程 序)(源 程 序)编译程序编译程序低级语言程序低级语言程序(目标程序)(目标程序)汇编语言程序汇编语言程序(源 程 序)(源 程 序)汇编程序汇编程序机器语言程序机器语言程序(目标程序)(目标程序)一种语言程序一种语言程序(源 程 序)(源 程 序)翻译程序翻译程序另一种语言程序另一种语言程序(目标程序)(目标程序)Fortran,Pascal,C汇编语言,机器语言汇编语言,机器语言2023-9-20第1章 编译原理概论Page 7 1.1 什么是编译程序

    4、什么是编译程序4高级语言程序的处理过程高级语言程序的处理过程(1)编译的方式)编译的方式由由“编译程序编译程序”把源程序全部翻译成二进制代码,可反把源程序全部翻译成二进制代码,可反复执行。复执行。2023-9-20第1章 编译原理概论Page 8 1.1 什么是编译程序什么是编译程序4高级语言程序的处理过程高级语言程序的处理过程(2)解释的方式)解释的方式一句一句地读进高级语言源程序;一句一句地读进高级语言源程序;边翻译边执行;边翻译边执行;翻译完成即得出执行结果;翻译完成即得出执行结果;下次再执行时重新翻译。下次再执行时重新翻译。由由“解释程序解释程序”对源程序逐个语句一边翻译,一边执对源程

    5、序逐个语句一边翻译,一边执行,执行速度慢,便于观察调试程序。行,执行速度慢,便于观察调试程序。2023-9-20第1章 编译原理概论Page 9 1.1 什么是编译程序什么是编译程序4高级语言程序的处理过程高级语言程序的处理过程(3)解释器)解释器(interpreter)与编译器与编译器 共同点:都是语言的一个实现系统共同点:都是语言的一个实现系统 不同点:不同点:解释器是源程序的一个解释器是源程序的一个执行系统执行系统,工作结果得,工作结果得到源程序的执行结果;到源程序的执行结果;编译器是源程序的编译器是源程序的转换系统转换系统,工作结果得到等,工作结果得到等价于源程序的某种目标程序价于源

    6、程序的某种目标程序2023-9-20第1章 编译原理概论Page 10 1.1 什么是编译程序什么是编译程序5编译程序的发展编译程序的发展 以机器语言、汇编语言为工具以机器语言、汇编语言为工具 以高级语言为工具以高级语言为工具 编译程序自动生成工具编译程序自动生成工具 自编译技术自编译技术 并行编译技术并行编译技术2023-9-20第1章 编译原理概论Page 11 1.2 编译过程编译过程2023-9-20第1章 编译原理概论Page 12 1.2 编译过程编译过程1、词法分析阶段、词法分析阶段 从左到右一个字符一个字符地读入源程序,对构从左到右一个字符一个字符地读入源程序,对构成源程序的字

    7、符流进行扫描和分解,从而识别出成源程序的字符流进行扫描和分解,从而识别出一个个一个个单词单词(Token)(Token)。单词:语法上具有独立意义的最小单位(标识符,单词:语法上具有独立意义的最小单位(标识符,基本字,算符,界符等)基本字,算符,界符等)识别规则:词法规则识别规则:词法规则源程序源程序(字符流)(字符流)翻译程序翻译程序单词符号串单词符号串(token串)串)2023-9-20第1章 编译原理概论Page 13 1.2 编译过程编译过程2023-9-20第1章 编译原理概论Page 14 1.2 编译过程编译过程例例:源程序源程序 begin var sum,first,cou

    8、nt:real;sum:=first+count*10 end.r r0 0u u;s st tl li ia af fe e,r rt t:n nm mu uu us sa ac cr ro ov v,n ni ig ge eb bs*1 1t tn nu uo oc ct t+s si ir rf f=:m m.n nd d e e 源程序在文件中的表示源程序在文件中的表示空格空格换行换行字符的内部表示即字符的内部表示即ASC码码单词表示成二元式(单词的种别,单词自身值)单词表示成二元式(单词的种别,单词自身值)(基本字基本字,real)(标识符标识符,first)(冒号冒号,:)(逗号逗

    9、号,)(标识符标识符,count)(分号分号,;)(基本字基本字,var)(逗号逗号,)(标识符标识符,sum)(基本字基本字,begin)(赋值号赋值号,:=)(加号加号,+)(标识符标识符,first)(标识符标识符,sum)词法分析后程序的图形表示词法分析后程序的图形表示2023-9-20第1章 编译原理概论Page 15 1.2 编译过程编译过程2、语法分析阶段、语法分析阶段 任务:在词法分析的基础上,将单词序列分解任务:在词法分析的基础上,将单词序列分解成各类语法短语,表示成语法树。成各类语法短语,表示成语法树。识别规则:语法规则。识别规则:语法规则。判断输入串是否构成一个语法上正确

    10、的程序,判断输入串是否构成一个语法上正确的程序,并生成语法树。并生成语法树。单词符号串单词符号串(token串)串)翻译程序翻译程序语法短语语法短语2023-9-20第1章 编译原理概论Page 16 1.2 编译过程编译过程2023-9-20第1章 编译原理概论Page 17 1.2 编译过程编译过程例例:赋值语句赋值语句 sum:=first+count*10赋值语句规则赋值语句规则:=“:=”:=“+”:=“*”:=“(”“)”:=:=:=赋值语句赋值语句标识符标识符:=表达式表达式表达式表达式+表达式表达式标识符标识符first表达式表达式*表达式表达式标识符标识符count整数整数1

    11、0sum2023-9-20第1章 编译原理概论Page 18 1.2 编译过程编译过程3、语义分析阶段、语义分析阶段 任务:审查源程序有无语义错误,为代码生成阶任务:审查源程序有无语义错误,为代码生成阶段收集类型信息。段收集类型信息。识别规则:语义规则识别规则:语义规则 识别结果进行类型转换或报告类型错误识别结果进行类型转换或报告类型错误 类型审查(静态语义):类型审查(静态语义):上下文相关性上下文相关性类型匹配类型匹配类型转换类型转换2023-9-20第1章 编译原理概论Page 19 1.2 编译过程编译过程2023-9-20第1章 编译原理概论Page 20 1.2 编译过程编译过程

    12、例:源程序:例:源程序:sum:=first+count*10经语义经语义分析发现整数分析发现整数10必须转换成实数才能与实形变量必须转换成实数才能与实形变量count相乘。因此在分析树上增加一语义处理结相乘。因此在分析树上增加一语义处理结点点 2023-9-20第1章 编译原理概论Page 21 1.2 编译过程编译过程4、中间代码生成、中间代码生成从这里开始真正做翻译工作从这里开始真正做翻译工作 任务:把源程序翻译成中间代码(如四元式)任务:把源程序翻译成中间代码(如四元式)四元式的形式:四元式的形式:(运算符,运算对象(运算符,运算对象1,运算对象,运算对象2,结果),结果)例:例:源程

    13、序:源程序:sum:=first+count*10 翻译成四元式翻译成四元式(1)(inttoreal 10 -T1)(2)(*count T1 T2)(3)(+first T2 T3)(4)(:=T3 -sum)2023-9-20第1章 编译原理概论Page 22 1.2 编译过程编译过程5、代码优化、代码优化 任务:对中间代码进行等价变换,以便生成更任务:对中间代码进行等价变换,以便生成更高效的目标代码,即高效的目标代码,即省时间和省空间省时间和省空间。举例举例:(1)(inttoreal 10 -T1)(2)(*count T1 T2)(3)(+first T2 T3)(4)(:=T3

    14、-sum)简化后简化后:(*count 10.0 T1)(+first T1 sum)2023-9-20第1章 编译原理概论Page 23 1.2 编译过程编译过程6、目标代码生成、目标代码生成 任务:把中间代码变换成特定机器上的绝对指令任务:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码代码或可重定位的指令代码或汇编指令代码,它它的工作与硬件系统和指令含义有关的工作与硬件系统和指令含义有关.例如例如:(*count 10.0 T1)(+first T1 sum)生成汇编代码如下生成汇编代码如下:MOVF count,R2MULF#10.0,R2MOVF first

    15、,R1ADDF R1,R2MOV R1,sum 源程序:源程序:sum:=first+count*102023-9-20第1章 编译原理概论Page 24 1.3 编译程序的结构编译程序的结构2023-9-20第1章 编译原理概论Page 25 1.3 编译程序的结构编译程序的结构表格管理和出错处理表格管理和出错处理 表格表格保留编译过程中源程序的各种信息保留编译过程中源程序的各种信息 出错处理出错处理处理编译过程中发现的源程序错误处理编译过程中发现的源程序错误(词法错误、语法错误、语义错误)(词法错误、语法错误、语义错误)2023-9-20第1章 编译原理概论Page 26 1.4 编译阶段

    16、的组合编译阶段的组合1分析与综合分析与综合 分析阶段:分析阶段:词法分析、语法分析、语义分析词法分析、语法分析、语义分析 只对程序进行识别和检查,只对程序进行识别和检查,未作实质翻译未作实质翻译。综合阶段:综合阶段:中间代码生成、代码优化、目标代码生成中间代码生成、代码优化、目标代码生成 对源程序对源程序进行翻译进行翻译,生成目标代码。,生成目标代码。2023-9-20第1章 编译原理概论Page 27 1.4 编译阶段的组合编译阶段的组合2前端与后端前端与后端 前端:前端:词法分析、语法分析、语义分析和中间代码的生成、词法分析、语法分析、语义分析和中间代码的生成、中间代码优化。中间代码优化。

    17、前端的工作只依赖于源语言,与机器无关。前端的工作只依赖于源语言,与机器无关。后端:后端:目标代码生成。目标代码生成。后端工作依赖于目标机,而与源语言无关(只与中后端工作依赖于目标机,而与源语言无关(只与中间代码有关)。间代码有关)。2023-9-20第1章 编译原理概论Page 28 1.4 编译阶段的组合编译阶段的组合3一遍与多遍一遍与多遍 一个编译程序可由一遍、两遍或多遍完成。一个编译程序可由一遍、两遍或多遍完成。“遍遍”是对源程序或中间语言程序从头到尾扫是对源程序或中间语言程序从头到尾扫视并完成规定任务的过程。视并完成规定任务的过程。影响分遍的因素:源语言结构,目标机资源,影响分遍的因素

    18、:源语言结构,目标机资源,开发人员编程习惯。开发人员编程习惯。2023-9-20第1章 编译原理概论Page 29 1.5 编译技术和软件工具编译技术和软件工具1、语言的结构化编辑器、语言的结构化编辑器 引导用户在语言的语法制导下编制程序。引导用户在语言的语法制导下编制程序。2、语言程序的调试工具、语言程序的调试工具 帮助编程人员检查程序的算法和运行结果是否符合帮助编程人员检查程序的算法和运行结果是否符合原意,原意,与语法分析和语义处理关系密切。与语法分析和语义处理关系密切。3、语言程序的测试工具、语言程序的测试工具 静态分析器:检查变量的定值与引用关系。静态分析器:检查变量的定值与引用关系。

    19、动态测试器:用测试用例记录程序运行时实际路径。动态测试器:用测试用例记录程序运行时实际路径。2023-9-20第1章 编译原理概论Page 30 1.5 编译技术和软件工具编译技术和软件工具4高级语言之间的转换工具高级语言之间的转换工具 把一种高级语言转换成另一种高级语言。把一种高级语言转换成另一种高级语言。汇编语言转换成高级语言(反编译)。汇编语言转换成高级语言(反编译)。5并行编译技术并行编译技术 并行机和多处理机的发展要求软件并行处理;并行机和多处理机的发展要求软件并行处理;运用重构技术从串行程序中分析出并行成分;运用重构技术从串行程序中分析出并行成分;用并行语言编写并行处理程序。用并行

    20、语言编写并行处理程序。2023-9-20第1章 编译原理概论Page 31小结小结内容:内容:什么是编译程序什么是编译程序 编译的各个阶段编译的各个阶段 为什么要学习编译程序为什么要学习编译程序重点:重点:对编译程序的功能和结构有总体认识对编译程序的功能和结构有总体认识 理解编译程序各个阶段的逻辑关系理解编译程序各个阶段的逻辑关系 以及他们怎样作为一个整体完成编译任务以及他们怎样作为一个整体完成编译任务2023-9-20第1章 编译原理概论Page 32练习练习1、什么是翻译程序,编译程序,汇编、什么是翻译程序,编译程序,汇编程序?它们之间是什么关系?程序?它们之间是什么关系?2023-9-2

    21、0第1章 编译原理概论Page 33练习练习1、翻译程序:、翻译程序:2、编译程序:、编译程序:3、汇编程序:、汇编程序:高级语言程序高级语言程序(源 程 序)(源 程 序)编译程序编译程序低级语言程序低级语言程序(目标程序)(目标程序)汇编语言程序汇编语言程序(源 程 序)(源 程 序)汇编程序汇编程序机器语言程序机器语言程序(目标程序)(目标程序)一种语言程序一种语言程序(源 程 序)(源 程 序)翻译程序翻译程序另一种语言程序另一种语言程序(目标程序)(目标程序)2023-9-20第1章 编译原理概论Page 34练习练习2、填空、填空在词法分析的基础上,将单词序列分解成各类语法在词法分

    22、析的基础上,将单词序列分解成各类语法短语。短语。()把源程序翻译成中间代码。把源程序翻译成中间代码。()从左到右一个字符一个字符地读入源程序,对构成从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个源程序的字符流进行扫描和分解,从而识别出一个个单词。个单词。()把中间代码变换成特定机器上的绝对指令代码或可把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。重定位的指令代码或汇编指令代码。()对中间代码进行等价变换,以便生成更高效的目标对中间代码进行等价变换,以便生成更高效的目标代码。代码。()审查源程序有无语义错误,为代码生成阶段收

    23、集类审查源程序有无语义错误,为代码生成阶段收集类型信息。型信息。()A.词法分析词法分析B.语法分析语法分析C.语义分析语义分析D.中间代码生成中间代码生成E.代码优化代码优化F.目标代码生成目标代码生成p 经常不断地学习,你就什么都知道。你知道得越多,你就越有力量p Study Constantly,And You Will Know Everything.The More You Know,The More Powerful You Will Be写在最后谢谢你的到来学习并没有结束,希望大家继续努力Learning Is Not Over.I Hope You Will Continue To Work Hard演讲人:XXXXXX 时 间:XX年XX月XX日

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第1章-编译程序概论引论课件.ppt(36页)
    链接地址:https://www.163wenku.com/p-7742110.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库