欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第1章编译系统概述精.ppt

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

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

    第1章编译系统概述精.ppt

    第第1章编译系统概述章编译系统概述 2023年2月20日 四川师范大学四川师范大学第1页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学内内 容容1.1.编译的起源:程序设计语言的发展编译的起源:程序设计语言的发展1.2.基本概念基本概念1.3.编译过程和编译程序构造编译过程和编译程序构造 1.4.编译技术的其他应用编译技术的其他应用第2页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学1.1 基本概念基本概念低级语言低级语言(Low level Language)字位码、机器语言、汇编语言字位码、机器语言、汇编语言特点:与特定的机器有关,功效高,但使用复杂、繁琐、费时、易出错高级语言高级语言 -Fortran、Pascal、C 语言等语言等特点:不依赖具体机器,移植性好、对用户要求低、易使用、易维护等。第3页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学源程序源程序 用汇编语言或高级语言编写的程序称为源程序目标程序目标程序 用目标语言所表示的程序 目标语言:可以是介于源语言和机器语言之间的“中间语言”,可以是某种机器的机器语言,也可以是某机器的汇编语言。翻译程序翻译程序 将源程序转换为目标程序的程序称为翻译程序。它是指各种语言的翻译器,包括汇编程序和编译程序,是汇编程序、编译程序以及各种变换程序的总称。第4页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学源程序、翻译程序、目标程序 三者关系:源程序翻译程序目标程序SOURCE PROGRAMTRANSLATER OBJECT PROGRAM即源程序是翻译程序的输入,目标程序是翻译程序的输出第5页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学汇编程序汇编程序 若源程序用汇编语言书写,经过翻译程序得到用机器语言表示的程序,这时的翻译程序就称之为汇编程序,这种翻译过程称为“汇编”(Assemble)编译程序编译程序 若源程序是用高级语言书写,经加工后得到目标程序,上述翻译过程称“编译”(Compile)汇编程序与编译程序都是翻译程序,主要区别是加工对象的不同。由于汇编语言格式简单,常与机器语言之间有一一对应的关系。汇编程序所要做的翻译工作比编译程序简单的多。第6页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学源程序的编译和运行源程序的编译和运行编译或汇编阶段编译或汇编阶段运行阶段运行阶段源程序源程序目标程序目标程序编译程序编译程序或汇编程序或汇编程序输出数据输出数据目标程序目标程序+运行子程序运行子程序输入数据输入数据第7页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学工作过程工作过程解释程序(解释程序(Interpreter)对源程序进行解释执行的程序。输出数据输出数据解释程序解释程序输入数据输入数据源程序源程序 特点、与编译程序比较特点、与编译程序比较第8页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学“编译编译-解释执行解释执行”系统系统源程序源程序编译程序编译程序源程序的中间形式输出数据输出数据解释程序解释程序输入数据输入数据第9页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学 所谓编译过程是指将高级语言程序翻译为等价的目标程序的过程。1.2 编译过程编译过程词法分析语法分析语义分析、生成中间代码代码优化生成目标程序习惯上是将编译过程划分为5个基本阶段:第10页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学单词:是语言的基本语法单位,一般语言有四大类单词 语言定义的关键字或保留字(如BEGIN、END、IF)标识符 常数 分界符(运算符)(如+、-、*、/、;、(、)对于如下的字符串,词法分析程序将分析和识别出9个单词:X1:=(2.0 +0.8 )*C1 1 2 3 4 5 6 7 8 9 源程序是由字符序列构成的,词法分析扫描源程序(字符串),根据语言的词法规则分析并识别单词,并以某种编码形式输出。任务:分析和识别单词单词。一、词法分析一、词法分析第11页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学 例如,对于前面提到的例子X1:=(2.0+0.8)*C1 我们可以根据语言赋值语句的文法来分析和识别该语句(单词串)。首先给定文法::=语法分析根据文法,将、识别出来,进而将赋值语句识别出来,在识别过程中进行语法检查,若有错误,则应输出出错信息。任务:根据语法规则(即语言的文法),分析并识别出各种语法成分,如表达式、各种说明、各种语句、过程、函数程序等,并进行语法正确性检查。二二、语法分析语法分析第12页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学中间代码:一种介于源语言和目标语言之间的中间语言形式。生成中间代码的目的:便于做优化处理;便于编译程序的移植(中间代码不依赖与目标计 算机)。中间代码的形式:编译程序设计者可以自己设计,常用的有 四元式、三元式、逆波兰表示等。任务:对识别出的各种语法成分 进行语义分析,并产生相应的中间代码。三三、语义分析、生成中间代码语义分析、生成中间代码第13页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学例:X1:=(2.0+0.8)*C1 由语法分析识别出为赋值语句,语义分析首先要分析语义上的正确性,例如要检查表达式中和赋值号两边的类型是否一致。根据赋值语句的语义,生成中间代码。即用一种语言形式来代替另一种语言形式,这式翻译的关键步骤。(翻译的实质:语义的等价性)下面介绍一种常用的中间代码来替换上述的赋值语句第14页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学四元式四元式(三地址指令三地址指令)四元式的语义为:2.0+0.8 T1 T1*C1 T2 T2 X1这样所生成的四元式与原来的赋值语句在语言的形式上不同,但语义上等价。运算符 左运算对象 右运算对象 结果(1)+2.0 0.8 T1(2)*T1 C1 T2(3):=X1 T2 其中T1和T2为编译程序引入的工作单元对于前面提到的例子 X1:=(2.0+0.8)*C1第15页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学 例如:上面的四元式中第一个四元式是计算常量表达式值,该值在编译时就可以算出并存放在工作单元中,不必生成目标指令来计算,这样四元式可优化为:编译时:2.0+0.8 T1*T1 C1 T2:=*1 T2 任务:目的是为了得到高质量的目标程序。四四、代码优化代码优化第16页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学五、生成目标程序五、生成目标程序 由中间代码很容易生成目标程序(地址指令序列)。这部分工作与机器关系密切,所以要根据机器进行。在做这部分工作时(要注意充分利用累加器),也可以进行优化处理。注意:在翻译成目标程序的过程中,要切记保持语义的等价性。第17页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学1.3 编译程序构造编译程序构造 1.3.1 编译程序的逻辑结构 按逻辑功能不同,可将编译过程划分为五个基本阶 段,与此相对应,我们将实现整个编译过程的编译程序划 分为五个逻辑阶段(即五个逻辑子过程)。O.P生成目标程序代码优化程序语义分析生成中间代码语法分析程序S.P词法分析程序第18页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学在上列五个阶段中都要做两件事:(1)建表和查表;(2)出错处理;所以编译程序中都要包括表格管理和出错处理两部分 出错处理 规模较大的源程序难免有多种错误,编译程序必须要有出错处理的功能。即能诊察出错误,并能报告用户错误性质和位置,以便用户修改源程序。出错处理能力的优劣是衡量编译程序质量好坏的一个重要指标。表格管理(符号表组织)在整个编译过程中始终都要贯穿着建表(填表)和查表的工作。即要及时的把源程序中的信息和编译过程中所产生的信息登记在表格中,而在随后的编译过程中同时又要不断的查找这些表格中的信息。第19页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学典型的编译程序具有典型的编译程序具有7个逻辑部分个逻辑部分S.PO.P语义分析、生成中间代码生成目标程序代码优化语法分析程序词法分析程序出错处理符号表管理第20页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学1.3.2 遍遍(PASS)遍:对源程序(包括源程序中间形式)从头到尾扫描一次,并做有关的加工处理 ,生成新的源程序中间形式或目标程序,通常称之为一遍。第一遍 第二遍 S.P中间形式1S.P中间形式2C2C1S.PO.P 上一遍的结果是下一遍的输入,最后一遍生成目标程序。五个基本阶段:是将源程序翻译为目标程序在逻辑上要完成的 工作。遍:是指完成上述5个基本阶段的工作,要经过几次扫描处理。要注意遍与基本阶段的区别要注意遍与基本阶段的区别第21页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学一遍扫描即可完成整个编译工作的称为一遍扫描即可完成整个编译工作的称为一遍扫描编译程序一遍扫描编译程序 取单词取单词 返回单词返回单词其结构为其结构为:S.P.词法分析语法分析整理目标程序 停机语义分析生成目标程序O.P.语法成分语法成分返回分析结果返回分析结果第22页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学1.3.3 前端和后端前端和后端 根据编译程序各部分功能,将编译程序分成前端和后端。前端前端:通常将与源程序有关的编译部分称为前端。词法分析、语法分析、语义分析、中间代码生成、代码优化 -分析部分 特点:与源语言有关 后端后端:与目标机有关的部分称为后端。目标程序生成(与目标机有关的优化)-综合部分 特点:与目标机有关第23页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学1.4 1.4 编译程序的前后处理器编译程序的前后处理器编译程序的前后处理器编译程序的前后处理器 源程序源程序:多文件、宏定义和宏调用,包含文件 目标程序目标程序:一般为汇编程序或可重定位的机器代码框架源程序框架源程序预处理器预处理器源程序源程序编译程序编译程序目标程序(汇编)目标程序(汇编)汇编程序汇编程序可重定位机器码可重定位机器码(Obj文件)文件)可重定位机器码可重定位机器码(文件组)(文件组)连接编译连接编译库目标、可重库目标、可重定位目标文件定位目标文件可重定位机器码可重定位机器码加载器加载器可运行的机器代码可运行的机器代码第24页,本讲稿共25页 2023年2月20日 四川师范大学四川师范大学1.5 1.5 编译技术的应用编译技术的应用编译技术的应用编译技术的应用语法制导的结构化编译器语法制导的结构化编译器程序格式化工具程序格式化工具软件测试工具软件测试工具程序理解工具程序理解工具高级语言的翻译工具高级语言的翻译工具等等。等等。作业:第作业:第11页页1、2、3、4题题第25页,本讲稿共25页

    注意事项

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

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开