欢迎来到天天文库
浏览记录
ID:37552252
大小:1.05 MB
页数:38页
时间:2019-05-12
《编译的基本概念》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1编译原理2第一章编译的基本概念3基本概念术语:语言和程序翻译程序和翻译方式宿主机与目标机编译过程概述编译程序的逻辑结构编译程序的前端、后端、遍编译技术的应用与发展4语言:符合一定规则(文法)的程序的集合低级语言字位码、机器语言、汇编语言特点:与特定的机器有关,功效高,但使用复杂、繁琐、费时、易出错高级语言Fortran、Pascal、C、JAVA等特点:不依赖具体机器,移植性好、对用户要求低、易使用、易维护等。1.1术语51.1术语程序:一组指令组成的序列,称为程序源程序:用汇编语言或高级语言编写的程序称为源程序目标程序:用目标语言所表示的程序,可以是介于源
2、语言和机器语言之间的“中间语言”,可以是某种机器的机器语言,也可以是某机器的汇编语言。翻译程序:将源程序转换为目标程序的程序称为翻译程序。它是指各种语言的翻译器,包括汇编程序和编译程序,是汇编程序、编译程序以及各种变换程序的总称。6源程序、翻译程序、目标程序三者关系:源程序翻译程序目标程序SOURCEPROGRAMTRANSLATEROBJECTPROGRAM即源程序是翻译程序的输入,目标程序是翻译程序的输出。1.1术语7汇编程序若源程序用汇编语言书写,经过翻译程序得到用机器语言表示的程序,这时的翻译程序就称之为汇编程序,这种翻译过程称为“汇编”。编译程序若源
3、程序是用高级语言书写,经加工后得到目标程序,上述翻译过程称“编译”。汇编程序与编译程序都是翻译程序,主要区别是加工对象的不同。由于汇编语言格式简单,常与机器语言之间有一一对应的关系。汇编程序所要做的翻译工作比编译程序简单的多。1.1术语8源程序的编译和运行编译或汇编阶段运行阶段源程序目标程序编译程序或汇编程序输出数据目标程序+运行子程序输入数据1.1术语9工作过程:解释程序:对源程序边解释,边执行的程序。类似于口译,不生成目标代码。输出数据解释程序输入数据源程序特点:边解释,边执行;不生成目标代码;比较简单,但速度慢。1.1术语101.1术语工作过程:编译程序
4、:把源程序翻译成等价的目标程序(汇编语言,机器语言)。类似于笔译。源程序编译程序目标程序输出数据目标程序+运行程序输入数据11编译程序的特点:1、翻译过程是一种功能上等价的翻译;2、输出结果是低级语言;3、编译程序与具体的语言和机器有关;4、被编译的源程序是被加工的对象,目标程序是加工的结果;5、比较复杂,效率高。1.1术语121.1术语宿主机:运行编译程序的计算机。目标机:运行编译程序所产生目标代码的计算机。13编译程序的分类1、诊断编译程序用于帮助程序开发和调试的编译程序。2、优化编译程序着重于提高目标代码效率的编译程序。3、交叉编译程序如果一个编译程序产
5、生不同于其宿主机的机器代码。4、可变目标编译程序如果不需重写编译程序中与机器无关的部分就能改变目标机。1.1术语14编译过程是将高级语言程序翻译为等价的目标程序的过程翻译外文资料:1、能识别出句子中的每个单词;2、分析句子的语法结构;3、根据句子的含义进行初步翻译;4、对译文进行修饰;5、写出最后的译文。1.2编译过程151.2编译过程文献翻译与编译过程的比较文献翻译编译程序分析1、识别单词2、分析句子3、根据语义进行初步翻译1、词法分析2、语法分析3、语义分析、生成中间代码综合1、修辞加工2、写出译文1、代码优化2、目标代码生成16词法分析语法分析语义分析及
6、中间代码生成代码优化目标代码生成习惯上是将编译过程划分为5个基本阶段:1.2编译过程171.2编译过程单词:是语言的基本语法单位<1>保留字(或称基本字,如:if、else、while)<2>标识符(如:max、min、str)<3>常数(如:12、6.8、’a’)<4>运算符(如:+、-、*、/)<5>界符(;、(、))任务:对源程序的字符串流进行扫描和分解,识别并输出一个个单词符号,及其与此相关的属性(保留字,标识符,常数,运算符,界符)一、词法分析字符序列编码形式例:ifB1=13thenX:=Y+1(20个字符)
7、
8、
9、
10、
11、
12、
13、
14、
15、
16、基标运常基标运标运常
17、本识算数本识算识算数字符符符号符符符181.2编译过程单词值单词类别单词符号内部的表示:二元式if基本字B1标识符=运算符(比较)13常数then基本字X标识符:=运算符(赋值)Y标识符+运算符(加)1常数词法分析依循的规则:描述词法规则的有效工具是正规文法和正规式。19任务:根据语法规则(即语言的文法),把单词符号串分解成各类语法成分(如表达式、语句、函数等),分析其源程序的结构,判别是否为相应程序语言中的合法程序。二、语法分析(编译程序的核心)1.2编译过程语法分析依循的规则:描述语法规则的有效工具是上下文无关文法。201.2编译过程例:Z=X+0.618
18、*Y表达式赋值语句上下文无关文法:<赋
此文档下载收益归作者所有