




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/6/19,编译原理,1,编译原理,中山大学南方学院电子通信与软件工程系苑俊英cihisa,2020/6/19,编译原理,2,第1章引论第3章文法和语言第4章词法分析第5章自顶向下语法分析LL(1)文法第6章自底向上优先分析第7章LR分析,目录,2020/6/19,编译原理,3,第8章语法制导翻译和中间代码生成第9章符号表第10章目标程序运行时的存储组织第11章代码优化第12章代码生成,2020/6/19,编译原理,4,第1章编译程序概论,什么是编译程序,编译原理这门课程主要介绍设计和构造编译程序的基本原理和常用的技术和方法。,本章重点介绍编译程序的基本概念。,编译的过程,编译程序的结
2、构,2020/6/19,编译原理,5,1.1什么是编译程序,翻译程序是指这样一个程序,它把一种语言(称作源语言)所写的程序(源程序)翻译成等价的另一种语言(称作目标语言)的程序(目标程序)。,高级语言程序,机器语言程序,翻译程序,2020/6/19,编译原理,6,1.1什么是编译程序,编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。,源程序,高级语言程序,编译程序,目标程序,汇编语言或者机器语言程序,2020/6/19,编译原理,7,程序运行阶段,采用编译方式在计算机上执行用高级语言编写的程序,需分阶段进行。,第一种情况:,高级语言程序,2020/6/
3、19,编译原理,8,第二种情况:,高级语言程序,程序运行阶段,2020/6/19,编译原理,9,什么是编译程序,语言转(变)换系统,C+编译器,C+,C,Java,Bytecode,Java编译器,2020/6/19,编译原理,10,1.2编译过程和编译程序的基本结构,将英文句子“Iwishyousuccess”翻译成中文句子的大致过程是:,词法分析,语法分析,语义分析,修饰工作,翻译成文,2020/6/19,编译原理,11,编译过程,编译程序是将一种语言形式翻译成另一种语言形式,因此,其工作过程一般可划分为如下五个阶段:,词法分析,语法分析,语义分析和中间代码生成,代码优化,目标代码生成,2
4、020/6/19,编译原理,12,floatr,h,s;s=2*3.1416*r*(rh);,例如计算圆柱体表面积的程序片断如下:,编译过程,2020/6/19,编译原理,13,词法分析阶段的任务是对构成源程序的字符串从左到右进行扫描和分解,根据语言的词法规则,识别出一个一个具有独立意义的单词(也称单词符号,简称符号)。,1.词法分析,2020/6/19,编译原理,14,词法规则是单词符号的形成规则,它规定了哪样的字符串构成一个单词符号。,词法规则,floatr,h,s;s=2*3.1416*r*(hr);,例如,2020/6/19,编译原理,15,上述源程序通过词法分析识别出如下单词符号:基
5、本字float标识符r、h、s常数3.1416、2算符*、界符(、)、;、,、=,词法规则,2020/6/19,编译原理,16,2.语法分析,语法分析的任务是在词法分析的基础上,根据语言的语法规则从单词符号串中识别出各种语法短语(如表达式、程序、语句等),并进行语法检查,即检查各种语法单位在语法结构上的正确性。,2020/6/19,编译原理,17,语法规则,语言的语法规则规定了如何从单词符号形成语法短语,语法规则是语法短语的形成规则。,floatr,h,s;s=2*3.1416*r*(hr);,例如,2020/6/19,编译原理,18,语法规则,单词符号串s=2*3.1416*r*(hr)中,
6、“s”是,单词符号串“2*3.1416*r*(hr)”组合成这样的语法短语,由=构成这样的语法短语。,2020/6/19,编译原理,19,3.语义分析和中间代码生成,语义分析的任务是首先对每种语法短语进行静态的语义审查,是否有语法错误,然后分析其含义,并用另一种语言形式(比源语言更接近于目标语言的一种中间代码或直接用目标语言)来描述这种语义。,2020/6/19,编译原理,20,例如,前例中,将s=2*3.1416*r*(hr)翻译成如下形式的四元式中间代码:,(1)(*,2,3.1416,T1),(2)(*,T1,r,T2),(3)(+,h,r,T3),(4)(*,T2,T3,T4),(5)
7、(=,T4,_,s),2020/6/19,编译原理,21,4.代码优化,代码优化的任务是对前阶段产生的中间代码进行等价变换或改造,以期获得更为高效即省时间和空间的目标代码。优化主要包括局部优化和循环优化等,例如上述四元式经局部优化后得:,(1)(*,6.28,r,T2),(2)(+,h,r,T3),(3)(*,T2,T3,s),2020/6/19,编译原理,22,5.目标代码生成,目标代码生成的任务是将中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。编译的最后阶段,其工作与硬件系统结构和指令含义有关。,2020/6/19,编译原理,23,表格管理和错误处理,编译程序在
8、工作过程中需要建立一些表格,以登记源程序中所提供的或在编译过程中所产生的一些信息,编译各个阶段的工作都涉及到构造、查找、修改或存取有关表格中的信息,因此,在编译程序中必须有一组管理各种表格的程序。,在编译程序的各个阶段中,都要涉及表格管理和错误处理。,2020/6/19,编译原理,24,表格管理和错误处理,一个好的编译程序在编译过程中,应具有广泛的程序查错能力,并能准确地报告错误的种类及出错位置,以便用户查找和纠正,因此,在编译程序中还必须有一个出错处理程序。,2020/6/19,编译原理,25,编译程序的结构,源程序,语义分析和中间代码生成程序,语法分析程序,词法分析程序,代码优化程序,目标
9、代码生成程序,目标程序,表格管理程序,出错处理程序,(字符串),2020/6/19,编译原理,26,1.3编译程序的生成方法,对源语言和目标语言认真分析,设计编译算法,选择语言编制程序,调试编译程序,提交相关文档资料,编译程序是一个复杂的系统程序,要生成一个编译程序一般要考虑以下几方面:,2020/6/19,编译原理,27,编译程序的自动生成,如目前已广为使用词法分析程序的自动生成系统LEX和语法分析程序自动生成系统YACC等,此外,还有可用来自动产生整个编译程序的软件工具:编译程序产生器,它的功能是将任一语言的词法规则、语法规则和语义解释的描述作为输入,自动生成该语言的编译程序。,随着编译技
10、术和自动机理论的发展,近年来已研制出了一些编译程序的自动生成系统。,2020/6/19,编译原理,28,编译程序的自动生成,生成编译程序的方法还常采用自编译方式和移植方式。,随着并行技术和并行语言的发展,处理并行语言的并行编译技术和将串行程序转换成并行程序的自动并行编译技术正在深入研究之中。,2020/6/19,编译原理,29,1.4编译技术在软件开发中的应用,虽然我们只有少数人从事构造或维护程序语言编译程序的工作,但是,大部分系统软件和应用软件的开发,通常要用到编译的原理和技术。,2020/6/19,编译原理,30,1.4编译技术在软件开发中的应用,例如,设计词法分析器的串匹配技术已用于正文编辑器、信息检索系统和模式识别程序;上下文无关文法和语法制导定义已用于创建诸如排版、绘图系统和语言结构化编辑器中,代码优化技术已用于程序验证器和从非结构化的程序产生结构化程序的编程之中。,2020/6/19,编译原理,31,本章小结,什么是编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届山西省临汾市襄汾中学物理高二下期末联考试题含解析
- 冬春季节传染病防治课件
- 宣传培训的课件模板
- 北京市海淀区北京57中2025年物理高一下期末学业质量监测模拟试题含解析
- 2025版智慧城市暗股投资合作合同样本
- 2025年度高端酒店管理合同(含客房服务及餐饮管理)
- 2025版叉车装卸搬运与环保处理一体化合同
- 二零二五年度不锈钢屋顶材料供应与施工承包合同
- 2025版大型企业仓储物流外包合作合同范本
- 2025版展览展示场地租赁合同补充协议规范
- 2025年北京市中考招生考试数学真题试卷(真题+答案)
- 2025年放射工作人员放射防护培训考试题及答案
- 2024南阳农业职业学院辅导员招聘笔试真题
- 2024年发展对象培训结业考试真题
- 肺结节中医课件
- 护理核心制度考试试卷(附答案)
- 新沪科版九年级上册物理第14章单元测试卷(了解电路)
- 大众文化导论完整版课件最全电子教案
- (完整版)形式发票模版(国际件通用)
- 原创领袖的风采-易发久
- 沭阳如东中学教学工作十八条措施与有效教学的实施策略
评论
0/150
提交评论