《计算机编译原理》PPT课件

《计算机编译原理》PPT课件

ID:41301991

大小:438.56 KB

页数:28页

时间:2019-08-21

《计算机编译原理》PPT课件_第1页
《计算机编译原理》PPT课件_第2页
《计算机编译原理》PPT课件_第3页
《计算机编译原理》PPT课件_第4页
《计算机编译原理》PPT课件_第5页
资源描述:

《《计算机编译原理》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第一章编译概述要点:本章通过简要介绍编译器的各个逻辑阶段,对全书的内容进行简要概述。本章出现的大部分概念在以后各章会详细介绍,因此不要求在学习本章时就都能理解这些概念。主要掌握以下两点:1、基本概念:源语言、目标语言、翻译器、编译器、解释器。2、编译器的各个逻辑阶段及各阶段的主要功能。第一章编译概述翻译器翻译器(翻译程序):把某一种语言程序(称为源语言程序)等价地转换成另一种语言程序(称为目标语言程序)的软件。翻译程序根据所处理的对象和实现的途径不同又分为:汇编程序、编译程序和解释程序。汇编程序:如果源语言是某种汇编语言,而目标语言是某种计算机的机器语言,这样的一个翻

2、译程序就称为汇编程序。编译器与解释器编译器(编译程序):如果源语言是某种高级语言,而目标语言是某种低级语言(汇编语言或机器语言),这样的一个翻译程序就称为编译程序。解释器(解释程序):这是另外一种类型的翻译程序,在翻译过程中它按照高级语言源程序在计算机上执行的动态顺序对源程序的语句逐条翻译(解释),边解释边执行直至结束,它不产生目标程序,它的工作结果就是源程序的执行结果,这样的一个翻译程序就称为解释程序。编译器与解释器例5假设有源程序:read(x);write("x=",x);编译器与解释器特点:1.编译器:工作效率高,即时间快、空间省;交互性与动态特性差、可移植性

3、差。大多数PL采用此种方法翻译;2.解释器:工作效率低,即时间慢、空间费;交互性与动态特性好、可移植性好。早期的Basic和现在的Java等。基本功能:二者相同;所采用的技术:从翻译的角度来讲,两种方式所涉及的原理、方法、技术相似。编译器根据不同的用途和侧重,编译程序还可进一步分类。专门用于帮助程序开发和调试的编译程序称为诊断编译程序(DiagnosticCompiler);着重于提高目标代码效率的编译程序叫优化编译程序(OptimizingCompiler)。现在很多编译程序同时提供了调试、优化等多种功能,用户可以通过“开关”进行选择。运行编译程序的计算机称宿主机,

4、运行编译程序所产生目标代码的计算机称目标机。如果一个编译程序产生不同于其宿主机的机器代码,则称它为交叉编译程序(CrossCompiler)。如果不需重写编译程序中与机器无关的部分就能改变目标机,则称该编译程序为可变目标编译程序(RetargetableCompiler)。编译的阶段编译器从逻辑上可以分成若干阶段,每个阶段把源程序从一种表示变换成另一种表示。编译的阶段把英文翻译为中文识别出句子中的一个个单词;分析句子的语法结构;根据句子的含义进行初步翻译;对译文进行修饰;写出最后的译文。词法分析语法分析中间代码产生优化目标代码产生词法分析任务:输入源程序,对构成源程序

5、的字符串进行扫描和分解,识别出一个个单词符号。依循的原则:构词规则描述工具:正规式和有限自动机对识别出的单词符号用内部形式(内部码)表示。对不符合词法规则的非法字符串作相应的词法出错处理。词法分析词法分析器id,1=id,2+id,360position=initial+rate60符号表positioninitialrate.........123语法分析任务:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位。如程序、语句、表达式等。依循的原则:语法规则描述工具:上下文无关文法通过语法分析确定整个输入串是否构成一个

6、语法上正确的程序,对不符合语法规则的单词序列作相应的语法出错处理。词法分析是一种线性分析,而语法分析是一种层次结构分析。语法分析表达式的语法特征:任何一个标识符都是表达式任何一个数都是表达式如果e1和e2都是表达式,那么e1+e2e1*e2(e1)也都是表达式表达式表达式表达式标识符表达式表达式(initial)标识符(rate)数(60)*+initial+rate*60分析树语法分析语法分析器id,1=id,2+id,360=+60id,1id,2id,3符号表positioninitialrate...

7、......123语法树语义分析任务:审查源程序有无语义错误,为代码生成收集类型信息(类型检查)。依循的原则:语义规则语义分析的一个重要部分是类型检查,编译器检查每个算符的运算对象,看它们的类型是否适当。如:实数作为数组下标,报错;整数和实数进行运算时,将整数转变为实数。语义分析语义分析器=+60id,1id,2id,3=+Inttorealid,1id,2id,360符号表positioninitialrate.........123中间代码生成任务:在语义分析的同时将源程序变换成一种内部

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。