编译方法第1章概述.ppt

上传人:sccc 文档编号:6065150 上传时间:2023-09-19 格式:PPT 页数:35 大小:1.17MB
返回 下载 相关 举报
编译方法第1章概述.ppt_第1页
第1页 / 共35页
编译方法第1章概述.ppt_第2页
第2页 / 共35页
编译方法第1章概述.ppt_第3页
第3页 / 共35页
编译方法第1章概述.ppt_第4页
第4页 / 共35页
编译方法第1章概述.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《编译方法第1章概述.ppt》由会员分享,可在线阅读,更多相关《编译方法第1章概述.ppt(35页珍藏版)》请在三一办公上搜索。

1、编译方法,1.3 编译技术的应用,1.2 编译程序,1.1 程序设计语言与程序,第1章 编译概述,1.1 程序设计语言与程序,1.1.2 程序设计语言的分类,1.1.3 程序及其结构,1.1.4 高级语言程序的处理过程,1.1.1 程序设计语言的定义,1.1 程序设计语言与程序,程序设计语言,语义,语法,1.1.1 程序设计语言的定义,1.1 程序设计语言与程序,1.1.2 程序设计语言的分类,1.1 程序设计语言与程序,1.1.3 程序及其结构,void Q()Q的局部数据定义 R();Q();,main()Main的局部数据定义,void R()R的局部数据定义,1.1 程序设计语言与程序

2、,1.C语言 一个主函数main、若干(可以为0)个子函数。,1.1.3 程序及其结构,1.1 程序设计语言与程序,2.Pascal语言,嵌套过程语言特点:程序的过程定义是嵌套的,内层过层由外层过程调用,内层过程 执行完毕将返回外层过程。允许内层过程引用包围它的任一外层过程说明的变量。,1.1.3 程序及其结构,program A;A的数据说明 procedure B(参数表);B的数据说明 procedure C(参数表);C的数据说明 begin end;begin C;end;,procedure D;D的数据说明 begin B;end;begin B;D;end.,1.1 程序设计语

3、言与程序,绝对机器代码程序,可再装配的机器代码程序,目标汇编程序,源程序,需预处理的源程序,1.1.4 高级语言程序的处理过程,预处理,编译,汇编,装配连接,1.1 程序设计语言与程序,1.2 编译程序,1.2.2 编译过程和编译程序的结构,1.2.3 编译程序的生成,1.2.4 编译程序与程序设计环境,1.2.1 编译与解释,1.2 编译程序,编译程序,源程序,目标程序,错误信息,高级语言程序的翻译方式:解释、编译编译:将高级语言程序翻译成另一种语言的等价程序。源程序、目标程序和编译程序的关系:,1.2.1 编译与解释,1.2 编译程序,解释:翻译一句执行一句,边翻译边执行,直到程序结束。与

4、编译的区别:不生成等价的目标代码程序。优点:解释方式便于程序的调试。(编译方式只需翻译一次,且目标程序的执行速度快),1.2.1 编译与解释,1.2 编译程序,词法分析,语义分析和中间代码生成,目标代码生成,目标程序,代码优化,语法分析,源程序,出错处理,表格管理,1.2.2 编译过程和编译程序的结构,1.2 编译程序,1.编译过程,主要任务:从左到右扫描源程序,逐一读入构成源程序的字符流,识别出 其中的一个个单词,识别出的单词称单词符号,也简称符号。单词是高级语言程序中有实际意义的最小语法单位。单词构成规则 词法规则或构词法(单词识别的依据)单词内码形式 二元式(指出了单词的类别和自身值),

5、1.2.2 编译过程和编译程序的结构,(1)词法分析,1.2 编译程序,(1)(标识符,z)(2)(等号,=)(3)(标识符,x)(4)(加号,+)(5)(标识符,a)(6)(取余号,%)(7)(整数,3)(8)(乘号,*)(9)(左括号,()(10)(保留字,int)(11)(右括号,)),(12)(左括号,()(13)(标识符,x)(14)(加号,+)(15)(标识符,y)(16)(右括号,))(17)(取余号,%)(18)(整数,2)(19)(除号,/)(20)(整数 7)(21)(分号;),例:z=x+a%3*(int)(x+y)%2/7;,1.2.2 编译过程和编译程序的结构,1.2

6、 编译程序,任务“组词成句”,根据单词分析出组成源程序的各类语法单位,并指出其中的语法错误。语法单位由源程序的单词构成(如表达式、语句、乃至整个程序。)语法单位的构成规则语法规则。一个语言的词法规则和语法规则定义了一个程序的形式结构。语法单位的表示语法树,(2)语法分析,1.2.2 编译过程和编译程序的结构,1.2 编译程序,例:z=x+a%3*y,1.2.2 编译过程和编译程序的结构,1.2 编译程序,任务:分析出语法单位具体的动作意义,进行初步翻译,生成与源程序 等价的中间代码程序。语义:定义一个程序所表示的意义,用语义规则描述。中间代码:指令应结构简单、含义明确,易于实现源程序中间代码

7、目标代码三者之间的转换。中间代码常用形式:逆波兰式、三元式、四元式等。四元式:(运算符,对象1,对象2,结果),例:z=x+a%3*y(1)(%a 3 t1)(2)(*t1 y t2)(3)(+x t2 t3)(4)(=t3 _ z),(3)语义分析和中间代码生成,1.2.2 编译过程和编译程序的结构,1.2 编译程序,任务:对中间代码进行等价的加工变换,以便生成更有效更节省时间 和空间的目标代码。例:z=x+a%3*y 的四元式序列:(1)(%a 3 t1)(2)(*t1 y t2)(3)(+x t2 z)代码优化的技术:删除公共子表达式、强度削弱、代码外提、合并已知量.注:此阶段并非编译程

8、序所必需。,(1)(%a 3 t1)(2)(*t1 y t2)(3)(+x t2 t3)(4)(=t3 _ z),(4)代码优化,1.2.2 编译过程和编译程序的结构,1.2 编译程序,任务:将中间代码程序变换成目标代码程序。目标代码:特定机器上的绝对指令代码 可重定位的指令代码 汇编指令代码这一阶段任务的实现与硬件系统的结构、目标指令的选择、变量 存储空间的分配、寄存器、后缓寄存器的调度等均有关系。,(5)目标代码生成,1.2.2 编译过程和编译程序的结构,1.2 编译程序,表格管理:为完成编译而建立并使用一些表格,以记录各种信息。信息登录:编译的各个阶段(尤其是词法语法、语义分析阶段)。信

9、息使用:各阶段的分析和翻译。,出错处理:若编译过程中发现源程序有错误,就应进行出错处理。,(6)表格管理和出错处理,涉及编译的每个阶段!,遍布编译的每个阶段!,1.2.2 编译过程和编译程序的结构,1.2 编译程序,以上为编译过程的典型的处理模式。并非所有的编译过程都有这些阶段。(可以不生成中间代码、不进行代码优化)常将编译的这五个阶段划分成两大部分:前三个阶段 分析部分后两个阶段 综合部分,说明:,1.2.2 编译过程和编译程序的结构,1.2 编译程序,词法分析程序,语义分析和中间代码生成程序,目标代码生成程序,目标程序,代码优化程序,语法分析程序,源程序,出错处理程序,表格管理程序,1.2

10、.2 编译过程和编译程序的结构,1.2 编译程序,1.编译程序结构,后端程序:由与源语言无关,与中间代码有关,主要依赖于目标机的工 作组合而成。(与目标机有关的代码优化、目标代码生成、相关的表格管理 和出错处理等。),前端程序:由那些主要依赖于源语言,而与目标机无关的工作组合而成。(词法分析、语法分析、语义分析与中间代码生成、某些目标 机器无关的代码优化,以及此间的表格管理、和出错处理等。),1.“前后端”组合方式,1.2.2 编译过程和编译程序的结构,1.2 编译程序,作用:,1.2.2 编译过程和编译程序的结构,1.2 编译程序,“遍”:对源程序或等价的中间语言程序从头到尾扫描,完成规定的

11、 任务,并生成新的中间结果或目标程序,称一“遍”。在一“遍”中可完成编译的一个或多个阶段的任务。源语言的特征和机器的特征决定编译程序究竟可以划分成几“遍”。,2按“遍”组合方式,1.2.2 编译过程和编译程序的结构,1.2 编译程序,第二遍,第一遍,第三遍,1.2.2 编译过程和编译程序的结构,1.2 编译程序,PDP11 C编译程序结构,编译程序的构造与三个方面有关 源语言 结构、含义和用途等。是准确描述语言、构造编译程序的出发点。目标语言 结构、指令系统、存储分配方式、外设管理方式、文件管理方法等。是编译过程中应考虑的问题。编译方法 翻译的具体方法。由源语言特性、目标语言特性、对编译程序性

12、能要求等决定。,1.2.3 编译程序的生成,1.2 编译程序,1用机器语言编写 复杂,不实用。2汇编语言编写 对具体的硬件环境的依赖性较高,程序过长,也不常用。但有些编译程序的核心部分常用汇编语言编写。3其他高级语言编写 最方便、最常用。,1.2.3 编译程序的生成,1.2 编译程序,目标程序,CB,CA,例:某机器已有A 语言的编译程序 CA,构造 B 语言的编译程序 CB 的过程为:,1.2.3 编译程序的生成,1.2 编译程序,L0,4采用自展技术构造“自编译”,用被编译的语言来书写该语言自身的编译程序。,1.2.3 编译程序的生成,1.2 编译程序,5编译工具自动生成,词法分析程序的生成系统LEX语法分析程序的生成系统YACC,1.2.3 编译程序的生成,1.2 编译程序,例:C语言的集成开发环境Visual C+,用户界面,硬件系统,操作系统,1.2.4 编译程序与程序设计环境,1.2 编译程序,1语言的结构化编辑器2查询解释器3硅编译器,1.3 编译技术的应用,1.3 编译技术的应用,Thank You!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号