欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    编译方法第1章概述.ppt

    • 资源ID:6065150       资源大小:1.17MB        全文页数:35页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    编译方法第1章概述.ppt

    编译方法,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 程序设计语言与程序,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 程序设计语言与程序,绝对机器代码程序,可再装配的机器代码程序,目标汇编程序,源程序,需预处理的源程序,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 编译程序,解释:翻译一句执行一句,边翻译边执行,直到程序结束。与编译的区别:不生成等价的目标代码程序。优点:解释方式便于程序的调试。(编译方式只需翻译一次,且目标程序的执行速度快),1.2.1 编译与解释,1.2 编译程序,词法分析,语义分析和中间代码生成,目标代码生成,目标程序,代码优化,语法分析,源程序,出错处理,表格管理,1.2.2 编译过程和编译程序的结构,1.2 编译程序,1.编译过程,主要任务:从左到右扫描源程序,逐一读入构成源程序的字符流,识别出 其中的一个个单词,识别出的单词称单词符号,也简称符号。单词是高级语言程序中有实际意义的最小语法单位。单词构成规则 词法规则或构词法(单词识别的依据)单词内码形式 二元式(指出了单词的类别和自身值),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 编译程序,任务“组词成句”,根据单词分析出组成源程序的各类语法单位,并指出其中的语法错误。语法单位由源程序的单词构成(如表达式、语句、乃至整个程序。)语法单位的构成规则语法规则。一个语言的词法规则和语法规则定义了一个程序的形式结构。语法单位的表示语法树,(2)语法分析,1.2.2 编译过程和编译程序的结构,1.2 编译程序,例:z=x+a%3*y,1.2.2 编译过程和编译程序的结构,1.2 编译程序,任务:分析出语法单位具体的动作意义,进行初步翻译,生成与源程序 等价的中间代码程序。语义:定义一个程序所表示的意义,用语义规则描述。中间代码:指令应结构简单、含义明确,易于实现源程序中间代码 目标代码三者之间的转换。中间代码常用形式:逆波兰式、三元式、四元式等。四元式:(运算符,对象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)代码优化的技术:删除公共子表达式、强度削弱、代码外提、合并已知量.注:此阶段并非编译程序所必需。,(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 编译程序,表格管理:为完成编译而建立并使用一些表格,以记录各种信息。信息登录:编译的各个阶段(尤其是词法语法、语义分析阶段)。信息使用:各阶段的分析和翻译。,出错处理:若编译过程中发现源程序有错误,就应进行出错处理。,(6)表格管理和出错处理,涉及编译的每个阶段!,遍布编译的每个阶段!,1.2.2 编译过程和编译程序的结构,1.2 编译程序,以上为编译过程的典型的处理模式。并非所有的编译过程都有这些阶段。(可以不生成中间代码、不进行代码优化)常将编译的这五个阶段划分成两大部分:前三个阶段 分析部分后两个阶段 综合部分,说明:,1.2.2 编译过程和编译程序的结构,1.2 编译程序,词法分析程序,语义分析和中间代码生成程序,目标代码生成程序,目标程序,代码优化程序,语法分析程序,源程序,出错处理程序,表格管理程序,1.2.2 编译过程和编译程序的结构,1.2 编译程序,1.编译程序结构,后端程序:由与源语言无关,与中间代码有关,主要依赖于目标机的工 作组合而成。(与目标机有关的代码优化、目标代码生成、相关的表格管理 和出错处理等。),前端程序:由那些主要依赖于源语言,而与目标机无关的工作组合而成。(词法分析、语法分析、语义分析与中间代码生成、某些目标 机器无关的代码优化,以及此间的表格管理、和出错处理等。),1.“前后端”组合方式,1.2.2 编译过程和编译程序的结构,1.2 编译程序,作用:,1.2.2 编译过程和编译程序的结构,1.2 编译程序,“遍”:对源程序或等价的中间语言程序从头到尾扫描,完成规定的 任务,并生成新的中间结果或目标程序,称一“遍”。在一“遍”中可完成编译的一个或多个阶段的任务。源语言的特征和机器的特征决定编译程序究竟可以划分成几“遍”。,2按“遍”组合方式,1.2.2 编译过程和编译程序的结构,1.2 编译程序,第二遍,第一遍,第三遍,1.2.2 编译过程和编译程序的结构,1.2 编译程序,PDP11 C编译程序结构,编译程序的构造与三个方面有关 源语言 结构、含义和用途等。是准确描述语言、构造编译程序的出发点。目标语言 结构、指令系统、存储分配方式、外设管理方式、文件管理方法等。是编译过程中应考虑的问题。编译方法 翻译的具体方法。由源语言特性、目标语言特性、对编译程序性能要求等决定。,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!,

    注意事项

    本文(编译方法第1章概述.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开