第一章_编译引论.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文档。上传文档
查看更多
源程序(Source program):编译程序的输入对象, 它是高级语言编写的程序; 目标程序(Object program): 编译程序的输出对象称为目标程序。目标程序可以是机器语言程序、汇编语言程序或用户自定义某种中间语言程序。 三、高级语言的执行方式 1. 编译方式 编译阶段:将源程序改造成另一种在逻辑上等价的目标语言程序; 运行阶段:在运行子程序的支持下执行目标程序。 运行子程序是为了支持目标程序的运行而开发的程序,如系统提供的标准库函数和目标程序所调用的其它子程序。 目标程序 程序的输入数据 运行结果 高级语言 源程序 编译程序 (器) 2. 解释方式   接受某程序语言编写的源程序,按源程序语句运行时的动态结构,直接逐句地分析、翻译并执行。解释程序相当于源程序的抽象执行机,是语言的实现系统。 高级语言编程示例: if (XY ) then Y:=X + 15 else Y:=X - 15; 运行结果 解释程序 (器) 程序的输入数据 高级语言源程序 解释器和编译器的比较 解释器是执行系统,编译器是转换系统。 基于解释执行的程序可以动态修改自身, 而基于编译执行的程序不易胜任,因其需要动态编译技术,难度较大。 基于解释方式有利于人机交互。 执行速度:解释器执行速度要慢。 空间开销: 解释器需要保存的信息较多,空间开销大。 利用解释器可自动生成编译器。 二者实现技术相似。 综上,大多数的高级语言采用编译方式。 3.语言的转换执行方式 假如要实现L语言,现在已有L’语言的编译程序,就可以先把用L语言编写的程序转换成等价的L’语言的程序,再利用L’语言的编译程序实现L语言。 L’语言编译器 转换器 L语言程序 L’语言程序 目标程序 1.2 编译程序的逻辑结构 编译程序的基本任务是将源语言程序翻译成等价的目标语言程序。 1、 源语言的种类成千上万,从常用的诸如FORTEAN,PASCAL和C语言,到各种各样的计算机应用领域的专用语言。 2、目标语言也是成千上万的。 3、编译程序根据它们构造的不同、所执行的具体功能的差异又分成多种类型,比如:一趟编译的、多趟编译的、具有调试和优化功能的等等。 尽管存在这些明显的复杂因素,任何编译程序所必需执行的主要任务基本是一样的,通过理解这些任务,使用同样的基本技术,我们可以为各种各样的源语言和目标语言设计和构造编译程序。 1.2.1、编译器的逻辑结构 表 处 理 错 误 处 理 目 标 代 码 生 成 中 间 代 码 优 化 中 间 代 码 生 成 语 义 分 析 语 法 分 析 词 法 分 析 目 标 程 序 源 程 序 词法分析的示例 某程序片段如下: VAR sum, first, count: real; BEGIN sum:=first + count * 10 END. 词法分析(Lexical Analysis) 词法分析程序扫描该程序段的字符序列,识别出下列单词及其种类序列: 1.关键字 VAR 2.1 sum 3.特殊符 , 4.1 first 5.特殊符 , 6.1 count 7.特殊符 : 8.关键字 real 9.特殊符 ; 10.关键字 BEGIN 11.1 sum 12.特殊符 := 13.1 first 14.特殊符 + 15.1 count 16.特殊符 * 17.整形常数 10 18 .关键字 END 19.特殊符 . VAR sum, first, count: real; BEGIN sum:=first + count * 10 END. 单词种类: 关键字: if、then、for、while等; 标识符; 常数; 运算符 特殊符 分界符: 标点符号、左右括号等等. 单词的机内表示,即TOKEN形式,一般包括单词属性标识和单词内码两个部分。这种形式既刻画了单词本身,又刻画了它所具有的种类属性。 1

文档评论(0)

xiaohuer + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档