版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理引论授课:胡静第一页,共38页。2023/2/2编译原理2教材及参考书教材:?程序设计语言编译原理〔第3版〕?,国防工业出版社,陈火旺等编著主要参考资料编译原理〔CompilersPrinciples,Techniques,andTools〕出版社:机械工业出版社?编译原理?,清华大学出版社,吕映芝、张素琴、蒋维杜编著第二页,共38页。2023/2/2编译原理3相关课程课程根底数据构造计算机原理和汇编语言高级程序设计语言后续课程编译技术第三页,共38页。2023/2/2编译原理4第一章概论编译的起源:程序设计语言的开展根本概念编译过程和编译程序的构造第四页,共38页。2023/2/2编译原理5程序设计语言的开展第五页,共38页。2023/2/2编译原理6根本概念低级语言〔LowlevelLanguage)字位码、机器语言、汇编语言特点:与特定的机器有关,成效高,但使用复杂、繁琐、费时、易出错高级语言Fortran、Pascal、C语言等特点:不依赖详细机器,移植性好、对用户要求低、易使用、易维护等。第六页,共38页。2023/2/2编译原理7根本概念第七页,共38页。2023/2/2编译原理8根本概念第八页,共38页。2023/2/2编译原理9源程序的编译和运行第九页,共38页。2023/2/2编译原理10源程序的解释运行第十页,共38页。2023/2/2编译原理11源程序的编译-解释运行第十一页,共38页。2023/2/2编译原理12编译器和解释器编译器和解释器的比较一样点〔执行一样的任务〕:检查输入程序并确定这个程序是否一个有效程序建立一个内部模型来刻画输入程序的构造和含义决定在执行期间值的存放位置不同点〔执行的行为不同〕:编译器以一个可执行程序的描绘作为输入,以另一个等价的可执行程序的描绘作为输出。解释器以一个可执行程序的描绘作为输入,以执行这一可执行程序描绘的结果作为输出。第十二页,共38页。2023/2/2编译原理13举例典型的编译器:gcc,javac非典型的编译器:latex(documentcompiler):TransformsaLaTeXdocumentintoDVIprintingcommandsInputinformation=document(notprogram)解释器:f2c:Fortran-to-Ctranslator(bothhigh-level)latex2html:LaTeX-to-HTML(bothdocuments)第十三页,共38页。2023/2/2编译原理14我们为什么需要编译器编写、调试、维护和理解用装配语言(assemblelanguage)编写的程序是很困难的自从第一个编译器出现之后,软件产品的数量有了宏大的增加。但是仍然有一些情况需要用装配语言编写例如,访问某些底层的机器资源〔设备驱动〕这些代码规模一般较小,还是需要编译器去处理其他的应用第十四页,共38页。2023/2/2编译原理15编译器构造法的研究目的好的编译器是计算机科学的缩影包含大量的技术:贪心算法〔存放器分配〕、启发式搜索技术〔列表调度〕、图形算法〔死码消除〕、动态规划〔指令挑选〕、有穷自动机和下推自动机〔扫描和语法分析〕、不动点算法〔数据流分析〕处理复杂的问题:动态分配、同步、命名、部分化、存储器分层管理、管道调度提供完好的解决方案:有机的结合算法、软件体系构造和软件工程的各种理论,对棘手问题给出综合性的解答方案。第十五页,共38页。2023/2/2编译原理16什么是编译器什么是编译程序预处理器编译器汇编器装配连接编辑骨架程序
源程序
目标汇编程序
可重定位机器代码
绝对机器码可重定位目标文件库第十六页,共38页。2023/2/2编译原理17源代码符合人类阅读习惯符合人类语法定义使用被命名的构造,例如变量和过程第十七页,共38页。2023/2/2编译原理18装配语言机器代码符合硬件需求包含机器指令,使用存放器和没有命名的内存地址对人类来说很难理解第十八页,共38页。2023/2/2编译原理19例子:输出的装配代码没有优化的代码优化后的代码第十九页,共38页。2023/2/2编译原理20编译器的根本原那么编译器是工程对象,是具有独特目的的大型软件系统,两个设计原那么必须遵守不违犯原义编译器必须保持被编译程序的含义不变这一原那么是编译器设计者与编译器用户之间的契约的核心实用性原那么编译器必须用某种明确的方式改进输入程序例如代码优化等对输入程序的改进第二十页,共38页。2023/2/2编译原理21有效的转换目的:产生和源代码描绘一样计算的机器代码这种转换是唯一的嘛?有没有“完美的转换〞〔速度快,代码量小〕编译器优化=找到更好的转换第二十一页,共38页。2023/2/2编译原理22转换的正确性产生的代码必须准确的执行和源代码一样的计算正确性很重要用不正确的编译器调试程序很难……和开发的本钱、平安性亲密相关编译原理这门课程讲述的就是可以保证转换平安性的技术。第二十二页,共38页。2023/2/2编译原理23如何转换转换是一个很复杂的过程源程序语言和目的程序语言是截然不同的我们需要构造化这个转换过程定义中间阶段每个阶段完成特定的功能第二十三页,共38页。2023/2/2编译原理24一个简单的编译器的构造第二十四页,共38页。2023/2/2编译原理25简单的前端构造第二十五页,共38页。2023/2/2编译原理26Analogy〔ctd〕前端可以通过类比于人类理解自然语言的过程进展解释词法分析自然语言:Hewrotetheprogram 单词:‘he’‘wrote’‘the’‘program’编程语言:if(b==0)a=b token:‘if’‘(’‘b’‘==’‘0’‘)’‘a’‘=’‘b’第二十六页,共38页。2023/2/2编译原理27Analogy〔ctd〕语法分析自然语言编程语言第二十七页,共38页。2023/2/2编译原理28Analogy〔ctd〕语义分析自然语言He wrote the computernoun verb article noun语法正确,语义错误!编程语言if(b==0) a=foo test assignment假如a是一个整型变量而foo是一个过程,那么语义分析就会报错第二十八页,共38页。2023/2/2编译原理29词法分析词法分析也叫线性分析和扫描。从左到右的读构成源程序的字符流,分组为多个记号。词法分析器position:=initial+rate*60id1:=id2+id3*60第二十九页,共38页。2023/2/2编译原理30语法分析语法分析也叫层次分析,把源程序的记号进一步分组,产生被编译器用于生成代码的语法短语。程序的语法构造常常需要递归上下文无关文法是递归规那么的一种形式化,可以指导语法分析由于词法分析不要求递归,因此我们通常不明确的界定词法分析和语法分析的界限。也就是说,我们将词法分析程序当成语法分析程序调用的一个子程序。第三十页,共38页。2023/2/2编译原理31语法分析〔续〕语法分析器id1:=id2+id3*60id1id3id2:=+*60在本例中,算符优先级可以通过如下方法定义:1.定义程序语言的语法规那么表达算符的优先级2.通过某些规那么库,例如算符优先级表格等来定义算符的优先级第三十一页,共38页。2023/2/2编译原理32语义分析〔续〕语义分析器id1id3id2:=+*60id1id3id2:=+*inttoreal60在本例中,几个标识符都是实数类型,而且源程序语言允许整数向实数类型的强迫转换第三十二页,共38页。2023/2/2编译原理33编译器的应用模型〔逻辑构造〕出错处理语法分析程序语义分析程序目的代码生成程序词法分析程序中间代码生成程序代码优化程序表格管理编译的前端〔FrontEnd〕分析部分与源语言有关编译的后端〔BackEnd〕综合部分与目的语言有关第三十三页,共38页。2023/2/2编译原理34第三十四页,共38页。2023/2/2编译原理35第三十五页,共38页。2023/2/2编译原理36遍〔PASS〕遍:对源程序〔包括源程序的中间表示形式〕从头到尾扫描一次并作有关的加工处理,生成新的源程序中间形式或目的程序,通常称之为一遍。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度企业场地租赁合同书样式
- 2024年度艺术品交易保证金合同
- 2024年度生产场地租赁及运营管理合同
- 2024年度企业融资借款合同书样本
- 邓小平理论概论课件
- 2024年度技术服务合同标的为云计算平台
- 2024年度建筑施工成本控制合同2篇
- 2024年度版权许可使用合同标的的许可费用及支付方式
- 宋词二首课件
- 2024年度宠物店知识产权保护合同:宠物店与知识产权公司之间的保护协议
- 装修标准服务流程
- 燃气工程技术专业基础知识试题库及答案解析
- DB3301-T 65.28-2018 反恐怖防范系统管理规范 第28部分:反恐怖防范目标硬质隔离设施建设规范
- 专利侵权与维权
- 2024年中国出版集团有限公司招聘笔试参考题库含答案解析
- 2024年天津医药集团招聘笔试参考题库含答案解析
- 医疗器械安全生产培训
- 考研数学模拟试卷(数学二)(附答案详解)
- 2023充电桩场地租赁简单合同范本正规范本(通用版)
- GB/T 43295-2023教育与学习服务远程学习服务要求
- 田间试验统计期末考试复习题
评论
0/150
提交评论