第1章-编译程序概论引论课件.ppt(36页)
- 【下载声明】
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 编译过程编译过程
展开阅读全文