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

    编译程序概论引论.ppt

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

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

    编译程序概论引论.ppt

    第1章 编译程序概论,2023/11/6,第1章 编译原理概论,Page 2,第1章 编译原理概论,学习目标掌握:编译的各个阶段理解:编译程序的概念了解:解释器,编译程序的结构和组合,2023/11/6,第1章 编译原理概论,Page 3,第1章 编译原理概论,编译是什么?编译有什么用/为什么需要编译?编译怎么实现这个功能/作用?,2023/11/6,第1章 编译原理概论,Page 4,第1章 编译原理概论,回想使用VC 6.0运行程序的过程:编译链接执行,检查词法是否正确,检查语法是否正确,将正确的高级语言生成机器能理解的目标代码,机器语言汇编语言,2023/11/6,第1章 编译原理概论,Page 5,第1章 编译原理概论,1.1 什么是编译程序1.2 编译过程概述1.3 编译程序的结构1.4 编译阶段的组合1.5 编译技术和软件工具,2023/11/6,第1章 编译原理概论,Page 6,1.1 什么是编译程序,1、翻译程序:2、编译程序:3、汇编程序:,Fortran,Pascal,C,汇编语言,机器语言,2023/11/6,第1章 编译原理概论,Page 7,1.1 什么是编译程序,4高级语言程序的处理过程,(1)编译的方式,由“编译程序”把源程序全部翻译成二进制代码,可反复执行。,2023/11/6,第1章 编译原理概论,Page 8,1.1 什么是编译程序,4高级语言程序的处理过程,(2)解释的方式,一句一句地读进高级语言源程序;边翻译边执行;翻译完成即得出执行结果;下次再执行时重新翻译。,由“解释程序”对源程序逐个语句一边翻译,一边执行,执行速度慢,便于观察调试程序。,2023/11/6,第1章 编译原理概论,Page 9,1.1 什么是编译程序,4高级语言程序的处理过程,(3)解释器(interpreter)与编译器,共同点:都是语言的一个实现系统不同点:,解释器是源程序的一个执行系统,工作结果得到源程序的执行结果;编译器是源程序的转换系统,工作结果得到等价于源程序的某种目标程序,2023/11/6,第1章 编译原理概论,Page 10,1.1 什么是编译程序,5编译程序的发展以机器语言、汇编语言为工具 以高级语言为工具编译程序自动生成工具 自编译技术并行编译技术,2023/11/6,第1章 编译原理概论,Page 11,1.2 编译过程,2023/11/6,第1章 编译原理概论,Page 12,1.2 编译过程,1、词法分析阶段从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(Token)。单词:语法上具有独立意义的最小单位(标识符,基本字,算符,界符等)识别规则:词法规则,在数中出现非数字字符标识符不是以字母和下划线打头,词法错误,1.2 编译过程,2023/11/6,第1章 编译原理概论,Page 13,词法错误,2023/11/6,第1章 编译原理概论,Page 14,1.2 编译过程,例:源程序 begin var sum,first,count:real;sum:=first+count*10 end.,2023/11/6,第1章 编译原理概论,Page 15,1.2 编译过程,2、语法分析阶段任务:在词法分析的基础上,将单词序列分解成各类语法短语,表示成语法树。识别规则:语法规则。判断输入串是否构成一个语法上正确的程序,并生成语法树。,else没有匹配的if表达式缺少分号结尾,语法错误,1.2 编译过程,2023/11/6,第1章 编译原理概论,Page 16,语法错误,2023/11/6,第1章 编译原理概论,Page 17,1.2 编译过程,例:赋值语句 sum:=first+count*10赋值语句规则:=“:=”:=“+”:=“*”:=“(”“)”:=:=:=,2023/11/6,第1章 编译原理概论,Page 18,1.2 编译过程,3、语义分析阶段任务:审查源程序有无语义错误,为代码生成阶段收集类型信息。识别规则:语义规则识别结果进行类型转换或报告类型错误类型审查(静态语义):上下文相关性类型匹配类型转换,数组下标越界声明和使用的函数没有定义零作除数,语义错误,1.2 编译过程,2023/11/6,第1章 编译原理概论,Page 19,语义错误,2023/11/6,第1章 编译原理概论,Page 20,1.2 编译过程,例:源程序:sum:=first+count*10经语义分析发现整数10必须转换成实数才能与实形变量count相乘。因此在分析树上增加一语义处理结点,2023/11/6,第1章 编译原理概论,Page 21,1.2 编译过程,4、中间代码生成从这里开始真正做翻译工作任务:把源程序翻译成中间代码(如四元式)四元式的形式:(运算符,运算对象1,运算对象2,结果)例:源程序:sum:=first+count*10 翻译成四元式(1)(inttoreal 10-T1)(2)(*count T1 T2)(3)(+first T2 T3)(4)(:=T3-sum),2023/11/6,第1章 编译原理概论,Page 22,1.2 编译过程,5、代码优化任务:对中间代码进行等价变换,以便生成更高效的目标代码,即省时间和省空间。举例:(1)(inttoreal 10-T1)(2)(*count T1 T2)(3)(+first T2 T3)(4)(:=T3-sum)简化后:(*count 10.0 T1)(+first T1 sum),2023/11/6,第1章 编译原理概论,Page 23,1.2 编译过程,6、目标代码生成任务:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码,它的工作与硬件系统和指令含义有关.,例如:(*count 10.0 T1)(+first T1 sum),生成汇编代码如下:MOVF count,R2MULF#10.0,R2MOVF first,R1ADDF R1,R2MOV R1,sum,源程序:sum:=first+count*10,2023/11/6,第1章 编译原理概论,Page 24,1.3 编译程序的结构,2023/11/6,第1章 编译原理概论,Page 25,1.3 编译程序的结构,表格管理和出错处理表格保留编译过程中源程序的各种信息出错处理处理编译过程中发现的源程序错误(词法错误、语法错误、语义错误),2023/11/6,第1章 编译原理概论,Page 26,1.4 编译阶段的组合,1分析与综合 分析阶段:词法分析、语法分析、语义分析只对程序进行识别和检查,未作实质翻译。综合阶段:中间代码生成、代码优化、目标代码生成对源程序进行翻译,生成目标代码。,2023/11/6,第1章 编译原理概论,Page 27,1.4 编译阶段的组合,2前端与后端前端:词法分析、语法分析、语义分析和中间代码的生成、中间代码优化。前端的工作只依赖于源语言,与机器无关。后端:目标代码生成。后端工作依赖于目标机,而与源语言无关(只与中间代码有关)。,2023/11/6,第1章 编译原理概论,Page 28,1.4 编译阶段的组合,3一遍与多遍 一个编译程序可由一遍、两遍或多遍完成。“遍”是对源程序或中间语言程序从头到尾扫视并完成规定任务的过程。影响分遍的因素:源语言结构,目标机资源,开发人员编程习惯。,2023/11/6,第1章 编译原理概论,Page 29,1.5 编译技术和软件工具,1、语言的结构化编辑器引导用户在语言的语法制导下编制程序。2、语言程序的调试工具帮助编程人员检查程序的算法和运行结果是否符合原意,与语法分析和语义处理关系密切。3、语言程序的测试工具静态分析器:检查变量的定值与引用关系。动态测试器:用测试用例记录程序运行时实际路径。,2023/11/6,第1章 编译原理概论,Page 30,1.5 编译技术和软件工具,4高级语言之间的转换工具把一种高级语言转换成另一种高级语言。汇编语言转换成高级语言(反编译)。5并行编译技术并行机和多处理机的发展要求软件并行处理;运用重构技术从串行程序中分析出并行成分;用并行语言编写并行处理程序。,2023/11/6,第1章 编译原理概论,Page 31,小结,内容:什么是编译程序编译的各个阶段为什么要学习编译程序重点:对编译程序的功能和结构有总体认识理解编译程序各个阶段的逻辑关系以及他们怎样作为一个整体完成编译任务,2023/11/6,第1章 编译原理概论,Page 32,练习,1、什么是翻译程序,编译程序,汇编程序?它们之间是什么关系?,2023/11/6,第1章 编译原理概论,Page 33,练习,1、翻译程序:2、编译程序:3、汇编程序:,2023/11/6,第1章 编译原理概论,Page 34,练习,2、填空,在词法分析的基础上,将单词序列分解成各类语法短语。()把源程序翻译成中间代码。()从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。()把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。()对中间代码进行等价变换,以便生成更高效的目标代码。()审查源程序有无语义错误,为代码生成阶段收集类型信息。(),A.词法分析B.语法分析C.语义分析D.中间代码生成E.代码优化F.目标代码生成,B,A,D,C,F,E,2023/11/6,第1章 编译原理概论,Page 35,下面的课程安排,第3章 文法和语言为下面各个阶段做好准备第4章 词法分析第5章 自顶向下语法分析方法第6章 自底向上优先分析第7章 LR分析第8章 语法制导翻译和中间代码生成第11章 代码优化第12章 代码生成,语法分析,语义分析,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开