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

    编译原理第1章引论.ppt

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

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

    编译原理第1章引论.ppt

    编译原理,主讲:曹阳,编译原理,第1章 引 言,1.1 什么叫编译程序 1.2 编译过程概述 1.3 编译程序的结构 1.4 编译程序的生成,第1章 引 言,教学目的,掌握编译程序的概念,了解编译的思想;了解编译程序的分类;理解编译程序的构成及各组成部分的作用;了解编译程序的生成.,教学重点与难点,本章重点:编译的概念;编译程序的构成。本章难点:编译程序的构成及组成部分作用。,第1章 引言,1.1什么叫编译程序,问题:在计算机上执行一个高级语言程序一般要分几步?执行方式有几种?,1.1 什么叫编译程序,编译程序是现代计算机系统的基本组成部分.从功能上看,一个编译程序就是一个语言翻译程序,它把一种语言(称作源语言)书写的程序翻译成另一种语言(称作目标语言)的等价的程序.,编译程序的分类(用途和侧重),诊断编译程序;优化编译程序;交叉编译程序;可变目标编译程序,专门用于程序的开发和调试,1.1 什么叫编译程序,编译程序的分类(用途和侧重),诊断编译程序;优化编译程序;交叉编译程序;可变目标编译程序,着重提高目标代码的效率,1.1 什么叫编译程序,编译程序的分类(用途和侧重),诊断编译程序;优化编译程序;交叉编译程序;可变目标编译程序,一个编译程序产生不同于其宿主机的机器代码宿主机:运行编译程序的计算机,1.1 什么叫编译程序,编译程序的分类(用途和侧重),诊断编译程序;优化编译程序;交叉编译程序;可变目标编译程序,如果不需要重写编译程序中与机器无关的部分就能改变目标机;目标机:运行编译程序所得的目标代码的计算机,1.1 什么叫编译程序,1.2编译过程概述(编译器的组成),任务:输入源程序,对构成源程序的字符串进行扫描和分析,识别出一个个的单词(符号)如关键字,标识符,常数,算符,界符。例:for(i=1;i=5;i+)词法分析结果如下:关键字 for界符(,1.2编译过程概述(编译器的组成),又如一个C源程序片断:int a;a=a+2;词法分析后返回:单词类型单词值 保留字 int标识符(变量名)a界符;标识符(变量名)a算符(赋值)=标识符(变量名)a 算符(加)+整数 2界符;,1.2编译过程概述(编译器的组成),任务:在词法分析的基础上,根据语言的语法规则,把单词符号分解成各类语法单位(如短语、句子等),并构造一棵能够正确反映该结构的语法树。作用:通过语法分析确定整个输入是否构成语法上正确的“程序”。注意:词法分析是种线性分析,而语法分析是一种层次分析。,1.2编译过程概述(编译器的组成),例:position:=initial+rate*60;规则:=“:=”:=“+”:=“*”:=“(”“)”:=:=:=,1.2编译过程概述(编译器的组成),赋值语句,标识符,表达式,表达式,+,表达式,表达式,标识符,整数,标识符,:=,表达式,*,position:=initial+rate*60;,1.2编译过程概述(编译器的组成),id1:=id2+id3*N,1.2编译过程概述(编译器的组成),任务:对语法分析所识别出的各类语法范畴,遵循语言的语义规则分析其含义是否正确。,1.2编译过程概述(编译器的组成),任务:语义分析的基础上按语言的语义规则进行初步的翻译(产生中间代码)中间代码:是一种含义明确、便于处理的记号系统,它通常独立具体的硬件;表示形式:四元式、三元式、间接三元式等,1.2编译过程概述(编译器的组成),例1:将id1:=id2+id3*60表示成四元式(1)(inttoreal,60-t1)(2)(*,id3t1t2)(3)(+,id2t2t3)(4)(:=,t3-id1),例2:把Z=(X+0.418)*Y/W翻译成四元式(教材),1.2编译过程概述(编译器的组成),任务:对前阶段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效的目标代码。根据范围不同分为:局部优化、循环优化、全局优化。优化的主要方面有:公共子表达式的提取、循环优化、删除无用代码优化的原则:等价变化例见教材,1.2编译过程概述(编译器的组成),id1:=id2+id3*60(1)(inttoreal60-t1)(2)(*id3t1t2)(3)(+id2t2t3)(4)(:=t3-id1)变换(1)(*id360.0t1)(2)(+id2 t1id1),1.2编译过程概述(编译器的组成),t1=b*c t1=b*c t2=t1+0 t2=t1+t1t3=b*c a=t2t4=t2+t3a=t4,1.2编译过程概述(编译器的组成),任务:把中间代码变换成特定机器上的低级语言代码(目标代码)目标代码形式:绝对指令代码、可重定位指令代码、汇编指令代码,1.2编译过程概述(编译器的组成),1.3 编译程序的结构,编译程序的总框如图所示:,1.3 编译程序的结构,1.3.2 表格与表格管理,常用的表格:符号表、常数表、标号表、入口名表、过程引用表。符号表:记录源程序中使用的名字收集每个名字的各种属性:信息类型、作用域、分配存储信息,Const1 常量值:35Var1变量类型:实层次:2,例:position=initial+rate 60,1.3.2 表格与表格管理,1.3.3 出错处理,检查错误、报告出错信息、排错、恢复编译工作 源程序中的错误通常分为语法错误和语义错误,在编译的前三个阶段就可以检测出来,1.3.3 出错处理,1.3.4 遍(编译程序的逻辑结构),1)定义:就是对源程序或源程序的中间结果从头到尾扫描一次,并作有关的加工处理,生成新的中间结果或目标程序。2)分类:单遍扫描编译程序和多遍扫描编译程序,注意:既可以将几个不同的阶段合为一遍,也可以把一个阶段的工作分为若干遍,当一遍中包含若干阶段时,各阶段的工作是穿插进行的。,1.3.4 遍,一遍扫描即可完成整个编译工作的称为一遍扫描编译程序,其结构为:,1.3.5 编译的前端与后端,编译的前端(front end):主要与源语言有关但与目标机无关的那些部分组成。编译的后端(back end):包括编译程序中与目标机有关的那些部分。通常后端不依赖于源语言而仅仅依赖于中间语言。,1.3.5 编译的前端与后端,1.3.5 编译的前端与后端,1.4 编译程序的生成,1.4 编译程序的生成,实现方式手工机器语言汇编系统程序设计语言自动构造工具lex yacc gcc,例:如果A机器上已有一个用A机器代码实现的某高级语言L1的编译程序,则我们可以用L1语言编写另一种高级L2的编译程序,把写好的L2编译程序经过L1编译程序编译后就可得到A机器代码实现的L2编译程序如图所:,1.4 编译程序的生成,第1章 小结,内容1 什么是编译程序2 编译过程和编译程序的结构本章没有难以理解的内容,重点对编译程序的功能和结构做一综述,要说难点的话可能是:了解编译程序各个成分在编译阶段的逻辑关系以及他们怎样作为一个整体完成编译任务的。,小结,作业:1.计算机执行用高级语言编写的程序的途径有哪些?它们之间主要区别是什么?2.名字与标识符的区别是什么?3.许多编译程序在真正编译之前都要进行预处理操作,请问预处理的目的是什么?预处理主要做哪些工作?,作业,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开