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