cmpl_01.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
cmpl_01,www.railwaycmpl.com,railwaycmpl.com,www.railwaycmpl,cmpl指令,cmpl汇编,cmpl08ebp,railwaycmpl,linux汇编cmpl,cmpldouble

第一章 编译概述 第一章 引论 §1.1 什么叫编译程序 1、词法分析(扫描器) 2、语法分析 3、语义分析与中间代码产生 4、优化 原中间代码: 优化后等价的中间代码: 5、目标代码生成 §1.3 编译程序的结构 §1.5 编译程序的生成 词法分析器 语法分析器 语义分析及中间代码生成器 优化器 目标代码生成器 出 错 处 理 程 序 表 格 管 理 程 序 源程序 单词符号 语法单位 中间代码 中间代码 目标代码 编译程序总框 表格与表格管理 用途:登记源程序的各类信息和编译程序各阶段的进展情况,如符号表。 管理:构造、查找、或更新。 出错处理 任务:发现并指出源程序中错误的性质和位置; 自动校正错误。 遍或趟(pass): 对源程序或源程序的中间结果从头至尾扫描一次,并作有关的加工处理,生成新的中间结果或目标程序的处理过程称为一遍。 可以把一个阶段分为若干遍,也可以把多个阶段合为一遍,通常有一遍和多遍编译程序。 词法分析→语法分析→语义分析与中间代码生成→优化→目标代码生成 编译的前端与后端: 前端(front end) : 由与源语言有关但与目标机无关的部分组成。 后端(back end) : 包括与目标机有关的部分。而一般不依赖于源语言,只与中间代码有关的编译阶段。 前端 (中间代码) 后端 一个语言的解释程序是这样的程序: 它以该语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。 §1.4 编译程序与程序设计环境(与编译程序相关的程序) 解释程序(interpreter) 汇编程序(assembler) 连接程序(linker) 装入程序(Loader) 预处理程序(preprocessor) 编辑器(editor) 调试程序(debugger) 描述器(profiler) 项目管理程序(project manager) 汇编程序是用于特定计算机上的汇编语言的翻译程序。 有时编译器把汇编语言作为目标语言,然后再由汇编程序将它翻译成目标代码。 连接程序将分别在不同的目标文件中编译或汇编的代码收集到一个可直接执行的文件中。 在这种情况下,目标代码(即还未被连接的机器代码)与可执行代码的机器代码之间有了区别。 连接程序还连接目标程序和用于标准库函数的代码,以及连接目标程序和计算机的操作系统提供的资源(存储分配程序及IO设备) 编译器、汇编程序或连接程序生成的代码还不能运行,装入程序处理所有的与指定的基地址有关的可重定位地址,并将修改后的指令和数据放在内存中适当的位置。 预处理程序是在真正的编译开始之前由编译器调用的独立程序。 预处理程序可以删除注释、包含其它文件以及执行宏替代。 编译器通常接受由任何生成标准文件(例如ASCII)的编辑器编写的源程序。最近,编译器已与一个编辑器和其它程序捆绑进一个交互的开发环境--IDE中。 调试程序是可在被编译了的程序中判定执行错误的程序。 运行一个带有调试程序的程序与直接执行不同,因为调试程序保存着大多数的源代码信息。 描述器是在执行中搜集目标程序行为统计的程序。程序员特别感兴趣的统计是每一个过程调用次数和每一个过程执行时间所占的百分比。这样的统计对于帮助程序员提高程序的执行速度极为有用。 将不同程序员编写的不同文件的各个独立版本整理在一起,能保存一组文件的历史,并能维护一个正在开发的程序的连贯版本。 机器/汇编语言直接编写 先实现语言的内核编译再进行自编译扩展(滚雪球) 先实现某语言的编译再用该语言实现另一语言的编译,即编译—编译程序 利用编译程序产生器输入源语言和目标语言的形式描述而自动产生编译程序 * * 主要介绍编译程序的基本概念、基本结构以及高级语言的程序设计环境。 1.1 什么叫编译程序 1.2 编译过程概述 1.3 编译程序的结构 1.4 编译程序与程序设计环境 1.5 编译程序的生成 1.6 编译程序在软件开发中的应用 小节 翻译程序(translator) 编译程序(compiler) 源程序的加工过程 与编译程序相关的程序 编译程序根据用途分类 目标程序 翻译程序 源程序 翻译程序 翻译程序是指这样一个程序,它把一种语言(源语言)所写的程序(源程序)翻译成与之等价的另一种语言(目标语言)的程序(目标程序)。 源语言:source language 源程序:source program 目标语言:objector target language 目标程序:object or target program 编译程序(编译器) 如果源语言是高级语言,目标语言是低级语言,那么称这样的翻译程序为编译程序。 高级语言:C、PASCAL、C++、FORTRAN

文档评论(0)

badjka + 关注
文档贡献者

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

1亿VIP精品文档

相关文档