编译技术讲义.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中间表示的重要性 * 编译原理 * 遍 * 编译原理 * 一遍扫描编译程序 * 编译原理 * Thanks for your time! Questions Answers * 编译原理 * * * 首先说明,我们要用一个简单的表达式position := initial+rate*60来说明编译器整个的工作过程。 * 编译原理 编译原理 编译技术 课程目标 掌握编译的基本理论、常用编译技术。 编译前端使用已有工具:LEX和YACC 能运用所学技术解决实际问题,独立编写编译后端 一个完整的例子: 基于语言:简单的PASCAL语言(SPL) SPL相关资料(程序) /faculty/hujing/编译原理/2011 虎书各种参考 /~appel/modern/c/ * 编译原理 * 课程的考核 最终成绩=卷面成绩*0.8+平时成绩*0.2 平时成绩的计算方法 小组考核、组内考核 * 编译原理 * 计算机课程间的拓扑关系 * 编译原理 * 教学要求 掌握编译程序总体结构 在系统级上认识算法、系统的设计 具有把握系统的能力 学习有关的原理、实现方法和技术,了解计算学科的基本方法、思想 掌握典型方法。 兼顾语言的描述方法、设计、应用——形式化 能形式化就能自动化 进一步培养“计算机思维能力” 软件系统的非物理性质 * 编译原理 * 编译器构造法 好的编译器是计算机科学的缩影 包含大量的技术:贪婪算法(寄存器分配)、启发式搜索技术(列表调度)、图形算法(死码消除)、动态规划(指令筛选)、有穷自动机和下推自动机(扫描和语法分析)、不动点算法(数据流分析) 处理复杂的问题:动态分配、同步、命名、局部化、存储器分层管理、管道调度 提供完整的解决方案:有机的结合算法、软件体系结构和软件工程的各种理论,对棘手问题给出综合性的解答方案。 * 编译原理 * 学习成果 理解编译过程各个阶段的工作原理 理解标准编译器各个组成部分的任务 熟悉编译过程各阶段所要解决的问题及其采用的方法和技术 应用所学的技术解决编译器构造过程中所产生的相关问题 理解编译器在生成代码时如何充分利用特定处理器的特征 * 编译原理 * 编译技术课程研究什么 什么是编译程序 * 编译原理 * 基本概念 源程序 用汇编语言或高级语言编写的程序称为源程序。 目标程序 用目标语言所表示的程序。 目标语言:可以是介于源语言和机器语言之间的“中间语言”,可以是某种机器的机器语言,也可以是某机器的汇编语言。 翻译程序 将源程序转换为目标程序的程序称为翻译程序。它是指各种语言的翻译器,包括汇编程序和编译程序,是汇编程序、编译程序以及各种变换程序的总称。 * 编译原理 * * 编译原理 * 源程序的编译执行 * 编译原理 * 源程序的解释执行 * 编译原理 * 源程序的编译-解释执行 * 编译原理 * 什么是编译器 什么是编译程序 * 编译原理 * 预处理器 编译器 汇编器 装配连接编辑 骨架程序 源程序 目标汇编程序 可重定位机器代码 绝对机器码 可重定位目标文件库 源代码 符合人类阅读习惯 符合人类语法定义 使用被命名的结构,例如变量和过程 * 编译原理 * 装配语言机器代码 符合硬件需求 包含机器指令,使用寄存器和没有命名的内存地址 对人类来说很难理解 * 编译原理 * 例子:输出的装配代码 没有优化的代码 * 编译原理 * 优化后的代码 如何转换 转换是一个很复杂的过程 源程序语言和目标程序语言是截然不同的 我们需要结构化这个转换过程 定义中间阶段 每个阶段完成特定的功能 * 编译原理 * 一个简单的编译器的结构 * 编译原理 * 简单的前端结构 * 编译原理 * 词法分析 词法分析也叫线性分析。 任务:分析和识别单词。源程序是由字符序列构成的,此法分析扫描源程序(字符串),根据语言的词法规则分析并识别单词,并以某种编码形式输出。 单词:是语言的基本语法单位,一般语言有四大类单词 * 编译原理 * 语法分析 * 编译原理 * 语法分析也成为层次分析。 任务:根据语法规则(即语言的文法),分析并识别出各种语法成分,如表达式,各种说明,各种语句,过程,函数,并进行语法正确性检查。 语法分析(续) * 编译原理 * 语义分析、生成中间代码 * 编译原理 * 语义分析、生成中间代码。 任务:对识别出的各种语法成分进行语义分析,并产生相应的中间代码。 语义分析、生成中间代码(续) * 编译原理 * 语义分析、生成中间代码(续) * 编译原理 * 代码优化 代码优化 任务:目的是为了得到高质量的目标程序 * 编译原理 * 生成目标程序 由中间代码很容易生成目标程序(地址指令序列)。这部分工作与机器关系密切,所以需要根据机器进行。在做这部分工作

文档评论(0)

benzei244572 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档