计算机编译原理优秀PPT.ppt
《计算机编译原理优秀PPT.ppt》由会员分享,可在线阅读,更多相关《计算机编译原理优秀PPT.ppt(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第一章 编译概述翻译器翻译器v翻译器(翻译程序):把某一种语言程序翻译器(翻译程序):把某一种语言程序(称为源语称为源语言程序言程序)等价地转换成另一种语言程序等价地转换成另一种语言程序(称为目标语称为目标语言程序言程序)的软件。的软件。v翻译程序依据所处理的对象和实现的途径不同又分翻译程序依据所处理的对象和实现的途径不同又分为:汇编程序、编译程序和说明程序。为:汇编程序、编译程序和说明程序。v汇编程序:假如源语言是某种汇编语言,而目标语汇编程序:假如源语言是某种汇编语言,而目标语言是某种计算机的机器语言,这样的一个翻译程序言是某种计算机的机器语言,这样的一个翻译程序就称为汇编程序。就称为汇编
2、程序。编译器与说明器编译器与说明器v编译器(编译程序):假如源语言是某种高级语言,编译器(编译程序):假如源语言是某种高级语言,而目标语言是某种低级语言(汇编语言或机器语言)而目标语言是某种低级语言(汇编语言或机器语言),这样的一个翻译程序就称为编译程序。,这样的一个翻译程序就称为编译程序。v 说明器(说明程序):这是另外一种类型的翻译程说明器(说明程序):这是另外一种类型的翻译程序,在翻译过程中它依据高级语言源程序在计算机序,在翻译过程中它依据高级语言源程序在计算机上执行的动态依次对源程序的语句逐条翻译(说明)上执行的动态依次对源程序的语句逐条翻译(说明),边说明边执行直至结束,它不产生目标
3、程序,它,边说明边执行直至结束,它不产生目标程序,它的工作结果就是源程序的执行结果,这样的一个翻的工作结果就是源程序的执行结果,这样的一个翻译程序就称为说明程序。译程序就称为说明程序。编译器与说明器编译器与说明器例5 假设有源程序:read(x);write(x=,x);编译器与说明器编译器与说明器v特点:特点:v1 1编译器:工作效率高,即时间快、空间省;交编译器:工作效率高,即时间快、空间省;交互性与动态特性差、可移植性差。大多数互性与动态特性差、可移植性差。大多数PLPL接受此种接受此种方法翻译;方法翻译;v2 2说明器:工作效率低,即时间慢、空间费;交说明器:工作效率低,即时间慢、空间
4、费;交互性与动态特性好、可移植性好。早期的互性与动态特性好、可移植性好。早期的BasicBasic和现和现在的在的JavaJava等。等。v基本功能:二者相同;基本功能:二者相同;v所接受的技术:从翻译的角度来讲,两种方式所涉所接受的技术:从翻译的角度来讲,两种方式所涉及的原理、方法、技术相像。及的原理、方法、技术相像。编译器编译器v依据不同的用途和侧重,编译程序还可进一步分类。依据不同的用途和侧重,编译程序还可进一步分类。特地用于帮助程序开发和调试的编译程序称为诊断编特地用于帮助程序开发和调试的编译程序称为诊断编译程序(译程序(Diagnostic CompilerDiagnostic Co
5、mpiler);着重于提高目标代);着重于提高目标代码效率的编译程序叫优化编译程序(码效率的编译程序叫优化编译程序(Optimizing Optimizing CompilerCompiler)。)。v现在很多编译程序同时供应了调试、优化等多种功现在很多编译程序同时供应了调试、优化等多种功能,用户可以通过能,用户可以通过“开关开关”进行选择。运行编译程序进行选择。运行编译程序的计算机称宿主机,运行编译程序所产生目标代码的的计算机称宿主机,运行编译程序所产生目标代码的计算机称目标机。假如一个编译程序产生不同于其宿计算机称目标机。假如一个编译程序产生不同于其宿主机的机器代码,则称它为交叉编译程序主
6、机的机器代码,则称它为交叉编译程序(Cross(Cross Compiler)Compiler)。假如不需重写编译程序中与机器无关的部。假如不需重写编译程序中与机器无关的部分就能变更目标机,则称该编译程序为可变目标编译分就能变更目标机,则称该编译程序为可变目标编译程序(程序(Retargetable CompilerRetargetable Compiler)。)。编译的阶段编译的阶段v编译器从逻辑上可编译器从逻辑上可以分成若干阶段,以分成若干阶段,每个阶段把源程序每个阶段把源程序从一种表示变换成从一种表示变换成另一种表示。另一种表示。编译的阶段编译的阶段v把英文翻译为中文把英文翻译为中文 v
7、识别出句子中的一个个单词;识别出句子中的一个个单词;v分析句子的语法结构;分析句子的语法结构;v依据句子的含义进行初步翻译;依据句子的含义进行初步翻译;v对译文进行修饰;对译文进行修饰;v写出最终的译文。写出最终的译文。词法分析词法分析语法分析语法分析中间代码中间代码产生产生优化优化目标代码目标代码产生产生词法分析词法分析v任务任务:输入源程序,对构成源程序的字符串进行扫输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词符号。描和分解,识别出一个个单词符号。v依循的原则:构词规则依循的原则:构词规则v描述工具:正规式和有限自动机描述工具:正规式和有限自动机vv对识别出的单词符号用
8、内部形式(内部码)表示。对识别出的单词符号用内部形式(内部码)表示。对识别出的单词符号用内部形式(内部码)表示。对识别出的单词符号用内部形式(内部码)表示。vv对不符合词法规则的非法字符串作相应的词法出错对不符合词法规则的非法字符串作相应的词法出错对不符合词法规则的非法字符串作相应的词法出错对不符合词法规则的非法字符串作相应的词法出错处理处理处理处理。词法分析词法分析词法分析器词法分析器 id,1 =id,2 +id,3 60 position=initial+rate 60符符 号号 表表 positioninitialrate.123语法分析语法分析v任务任务:在词法分析的基础上,依据语言
9、的语法规则把在词法分析的基础上,依据语言的语法规则把单词符号串分解成各类语法单位。如程序、语句、单词符号串分解成各类语法单位。如程序、语句、表达式等。表达式等。v依循的原则:语法规则依循的原则:语法规则v描述工具:上下文无关文法描述工具:上下文无关文法v通过语法分析确定整个输入串是否构成一个语法上通过语法分析确定整个输入串是否构成一个语法上正确的程序,对不符合语法规则的单词序列作相应正确的程序,对不符合语法规则的单词序列作相应的语法出错处理。的语法出错处理。v词法分析是一种线性分析,而语法分析是一种层次词法分析是一种线性分析,而语法分析是一种层次结构分析。结构分析。语法分析语法分析v表达式的语
10、法特征:表达式的语法特征:v任何一个标识符都是任何一个标识符都是表达式表达式v任何一个数都是表达任何一个数都是表达式式v假如假如e1e1和和e2e2都是表达都是表达式,那么式,那么ve1+e2e1+e2ve1*e2 e1*e2 v(e1)(e1)v也都是表达式也都是表达式表达式表达式表达式表达式表达式表达式标识符标识符表达式表达式表达式表达式(initial)标识符标识符(rate)数数(60)*+initial+rate*60分析树分析树语法分析语法分析语法分析器语法分析器 id,1 =id,2 +id,3 60 =+60 id,1 id,2 id,3 符符 号号 表表 positionin
11、itialrate.123语法树语法树语义分析语义分析v任务:任务:审查源程序有无语义错误,为代码生审查源程序有无语义错误,为代码生成收集类型信息(类型检查)。成收集类型信息(类型检查)。v依循的原则:语义规则依循的原则:语义规则v语义分析的一个重要部分是类型检查,编译语义分析的一个重要部分是类型检查,编译器检查每个算符的运算对象,看它们的类型器检查每个算符的运算对象,看它们的类型是否适当。如:实数作为数组下标,报错;是否适当。如:实数作为数组下标,报错;整数和实数进行运算时,将整数转变为实数。整数和实数进行运算时,将整数转变为实数。语义分析语义分析语义分析器语义分析器=+60 id,1 id
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 编译 原理 优秀 PPT
限制150内