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

    编译原理第01章编译程序概述.ppt

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

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

    编译原理第01章编译程序概述.ppt

    2023/9/15,1,编译原理,李红军E-mail:,2023/9/15,2,课程简介,课程内容介绍编译器构造的一般原理和基本实现方法介绍的理论知识:形式语言和自动机理论、语法制导的定义和属性文法、类型论等强调形式描述技术和自动生成技术强调对编译原理和技术的宏观理解,不把注意力分散到枝节算法,不偏向于某种源语言或目标机器,2023/9/15,3,为什么要学习编译原理,是计算机学科中一个非常成功的分支蕴涵着计算机学科中解决问题的思路、抽象问题和解决问题的方法有利于加深对程序语言的理解是一个很好的软件工程实例,所介绍的概念和技术能应用到一般的软件设计之中在软件逆向工程、程序理解和软件安全等方面有着广泛的应用。,2023/9/15,4,教材和参考书,教材程序设计语言编译原理.陈火旺著,国防科技大学出版社。参考书COMPILER CONSTRUCTION-Principles and Practice.Kenneth C.Louden著(San Jose State University)编译原理.(美)阿霍(Aho,A.V.)等著.李建中等译.北京:机械工业出版社,2003.8编译原理考研辅导教程.电子科技大学出版社,2023/9/15,5,课程要求,目标:相互交流,共同进步课时:48课程学分:3先修课程:离散数学数据结构与算法程序设计语言考核:考试(70%)+平时(30%)作业:每章至少1题,2023/9/15,6,编译程序历史(国外),1957年,IBM的John Backus带领的一个研究小组设计出了Fortran语言及其编译器。与此同时,Noam Chomsky开始了他对自然语言结构的研究,发现Chomsky Hierarchy。70年代后期和80年代早期,编译器其它部分的生成自动化。这些尝试并未取得多少成功。在九十年代,作为GNU项目或其它开放源代码项目的一部分,许多免费编译器和编译器开发工具被开发出来。,2023/9/15,7,编译程序历史(国内),60年代初期,董韫美院士和杨芙清院士的研究组开发国产机上的ALGOL和FORTRAN编译器。改革开放前,研制国产计算机,包括大型机和高性能计算机(如向量机、并行机),相应的也在研制高级语言编译器。90年代以来中科院计算所张兆庆教授研究组(ACTGroup)先后开发了共享内存多处理机的并行识别器,分布式内存多处理机的并行识别器,SIMD芯片和VLIW芯片的并行优化C编译器。将编译技术与图形学结合,ACTGroup还推出了集成化、可视化的并行编程环境。,2023/9/15,8,编译程序现状,并行机的并行编译技术基于GCC(GNU C Compiler)生成面向特定芯片的编译器工作反编译技术,2023/9/15,9,第一章 编译程序概论,什么是编译程序,本章重点介绍编译程序的基本概念。,编译的过程,编译程序的结构,2023/9/15,10,程序设计语言,计算机可以直接接收的语言是机器语言,由二进制(0、1序列)组成,唯一可以在机器上直接执行的语言。难读、难写、与硬件环境密切相关。汇编语言用助记符表示指令的操作码。高级程序设计语言摆脱了对硬件的依赖,易读、易写、便于算法交流。,2023/9/15,11,1.1 什么是编译程序,翻译程序是指这样一个程序,它把一种语言(称作源语言)所写的程序(源程序)翻译成等价的另一种语言(称作目标语言)的程序(目标程序)。,高级语言程序,机器语言程序,翻译程序,2023/9/15,12,1.1 什么是编译程序,编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。,源程序,高级语言程序,编译程序,目标程序,汇编语言或者机器语言程序,2023/9/15,13,程序运行阶段,第一种情况:,高级语言 程序,2023/9/15,14,第二种情况:,高级语言 程序,程序运行阶段,2023/9/15,15,1.2 编译过程和编译程序的基本结构,将英文句子“I wish you success”翻译成中文句子的大致过程是:,词法分析,语法分析,语义分析,修饰工作,翻译成文,2023/9/15,16,编译过程,编译程序的工作过程:五个阶段,词法分析,语法分析,中间代码生成,代码优化,目标代码生成,2023/9/15,17,float r,h,s;s=2*3.1416*r*(rh);,例如 计算圆柱体表面积的程序 片断如下:,编译过程,2023/9/15,18,词法分析阶段的任务是对构成源程序的字符串从左到右进行扫描和分解,根据语言的词法规则,识别出一个一个具有独立意义的单词(也称单词符号,简称符号)。,1.词法分析,2023/9/15,19,词法规则是单词符号的形成规则,它规定了哪样的字符串构成一个单词符号。,词法规则,float r,h,s;s=2*3.1416*r*(hr);,例如,2023/9/15,20,词法分析结果:关键字 float 标识符 r、h、s 常数 3.1416、2 算符*、界符(、)、;、,、=,词法规则,2023/9/15,21,2.语法分析,语法分析的任务是在词法分析的基 础上,根据语言的语法规则从单词符 号串中识别出各种语法单位(如表 达式、说明、语句等),并进行语法 检查,即检查各种语法单位在语法结 构上的正确性。,2023/9/15,22,语法规则,语言的语法规则规定了如何从单词符号形成语法单位,语法规则是语法单位的形成规则。,float r,h,s;s=2*3.1416*r*(hr);,例如,2023/9/15,23,语法规则,单词符号串 s=2*3.1416*r*(hr)中,“s”是,单词符号串“2*3.1416*r*(hr)”组合成这样的语法单位,由=构成这样的语法单位。,规则的表示方法:巴克斯-诺尔范式,2023/9/15,24,3.中间代码生成,语义分析的任务是首先对每种语法单位进行静态的语义审查,然后分析其含义,并用另一种语言形式(比源语言更接近于目标语言的一种中间代码或直接用目标语言)来描述这种语义。,2023/9/15,25,例如,前例中,将s=2*3.1416*r*(hr)翻译成如下形式的四元式中间代码:,(1)(*,2,3.1416,T1),(2)(*,T1,r,T2),(3)(+,h,r,T3),(4)(*,T2,T3,T4),(5)(=,T4,_,s),2023/9/15,26,4.代码优化,代码优化的任务是对前阶段产生的中间代码进行等价变换或改造,以期获得更为高效即省时间和空间的目标代码。优化主要包括局部优化和循环优化等,例如上述四元式经局部优化后得:,2023/9/15,27,5.目标代码生成,目标代码生成的任务是将中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。,2023/9/15,28,表格管理和错误处理,编译程序在工作过程中需要建立一些表格,以登记源程序中所提供的或在编译过程中所产生的一些信息,编译各个阶段的工作都涉及到构造、查找、修改或存取有关表格中的信息,因此,在编译程序中必须有一组管理各种表格的程序。,在编译程序的各个阶段中,都要涉及表格管理和错误处理。,2023/9/15,29,表格管理和错误处理,一个好的编译程序在编译过程中,应具有广泛的程序查错能力,并能准确地报告错误的种类及出错位置,以便用户查找和纠正,因此,在编译程序中还必须有一个出错处理程序。,2023/9/15,30,编译程序的结构,源程序,中间代码生成程序,语法分析程序,词法分析程序,代码优化程序,目标代码生成程序,目标程序,表格管理程序,出错处理程序,(字符串),2023/9/15,31,1.3 编译程序的生成方法,对源语言和目标语言认真分析,设计编译算法,选择语言编制程序,调试编译程序,提交相关文档资料,生成一个编译程序一般要考虑以下几方面:,2023/9/15,32,编译程序的自动生成,LEXYACC可用来自动产生整个编译程序的软件工具:编译程序产生器,它的功能是将任一语言的词法规则、语法规则和语义解释的描述作为输入,自动生成该语言的编译程序。,编译程序自动生成系统。,2023/9/15,33,编译程序的自动生成,生成编译程序的方法还常采用自编译方式和移植方式。,随着并行技术和并行语言的发展,处理并行语言的并行编译技术和将串行程序转换成并行程序的自动并行编译技术正在深入研究之中。,2023/9/15,34,1.4 编译技术在软件开发中的应用,虽然我们只有少数人从事构造或维护程序语言编译程序的工作,但是,大部分系统软件和应用软件的开发,通常要用到编译的原理和技术。,2023/9/15,35,1.4 编译技术在软件开发中的应用,例如,设计词法分析器的串匹配技术已用于正文编辑器、信息检索系统和模式识别程序;上下文无关文法和语法制导定义已用于创建诸如排版、绘图系统和语言结构化编辑器中,代码优化技术已用于程序验证器和从非结构化的程序产生结构化程序的编程之中。,2023/9/15,36,怎样学习编译原理,做好思想准备,不要畏难,多看书,结合课本后面的习题多做思考和类比,在学习的过程中归纳出自己的难点和疑惑点,然后重点突破;自己动手做一个虚拟机,在虚拟机的基础上开发自己的语言和编译器,加强实践;深刻的理解书本上那些抽象的东西。可以直接专注于编码(Lex,Yacc等)的研究,然后去配合理论的学习,可以在第一次学习的过程中忽略一些内容,等以后用的时候再来学习.,2023/9/15,37,本章小结,什么是编译程序,编译过程的五个阶段,编译程序的结构框图,编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。,词法分析、语法分析、中间代码生成、代码优化、目标代码生成,2023/9/15,38,本章小结,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开