计算机科学与技术编译原理第一考试重点剖析.ppt

计算机科学与技术编译原理第一考试重点剖析.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 1.3 编译程序的工作过程 1.3.5 代码生成 如果语义分析时把源程序表示成中间形式而不是表示成目标指令,则由本部分完成从中间形式到目标指令的转换。如果语义分析时,已直接生成目标指令,则无需另外再做代码生成工作。 目标指令可能是绝对指令代码,或可重新定位的指令代码或汇编指令代码。该阶段的工作有赖于硬件系统结构和机器指令含义。 * 目标代码生成 (* , id3 60.0 t1 ) (+ , id2 t1 id1 ) movf id3,R2 mulf #60.0,R2 movf id2,R1 addf R2,R1 movf R1,id1 * 1.3 编译程序的工作过程 1.3.6 表格管理 登记源程序中出现的每个名字以及名字的各种属性。有些名字的属性需要在各个阶段才能填入。 * 符号表管理 记录源程序中使用的名字 收集每个名字的各种属性信息 类型、作用域、分配存储信息 Const1 常量 值:35 Var1 变量 类型:实 层次:2 * 1.3 编译程序的工作过程 1.3.7 出错处理 源程序中的错误有语法错误和语义错误两种。 1.语法错误:源程序中不符合语法(或词法)规则的错误,它们可在词法分析或语法分析时检测出来。 2.语义错误:源程序中不符合语义规则的错误,一般在语义分析时检测出来,有的语义错误要在运行时才能检测出来。通常包括:说明错误、作用域错误、类型不一致等等 * 出错处理 检查错误、报告出错信息、排错、恢复编译工作 * 1.4 编译程序的结构 出 错 处 理 语法分析程序 语义分析程序 目标代码生成程序 词法分析程序 中间代码生成程序 代码优化程序 表 格 管 理 * 1.4 编译程序的结构 * 1.4 编译程序的结构 1.4.1 遍(趟,趟程) 所谓一趟或一遍是指一个编译程序在编译时刻把源程序或源程序的等价物(中间程序)从头到尾扫描一遍并转换成另一紧邻的等价物的全过程。 根据编译程序在完成翻译任务的过程中需要对源程序或其中间等价物扫描的遍数,可以把编译程序分为单遍扫描的编译程序(只需扫描一遍)和多遍扫描的编译程序(需扫描多遍)。 * 单遍扫描的编译程序 * 1.4 编译程序的结构 1.4.2 编译的前端和后端 前端主要由与源语言有关但与目标机器无关的那些部分组成,如词法分析、语法分析、语义分析与中间代码生成及部分代码优化工作。 后端主要包括编译中与目标机器有关的那些部分,如与目标机有关的代码优化和目标代码生成等。后端不依赖于源语言而仅依赖于中间语言。 可以通过改变编译程序的后端来实现编译程序的移植。 * 1.5 编译程序的组织方式 课本 图1.7 Page10 * 1.6 编译程序的其它有关技术 1.6.1 高级语言的自展技术 构造编译程序可以用机器言语、汇编语言和高级语言。 高级语言的自编译性:一个语言可以用来编写自己的编译程序。 * 1.6 编译程序的其它有关技术 1.6.1 编译的自展技术 ——通过一系列自展途径而形成编译程序的过程。 先对语言的核心部分构造一个小小编译程序(可用低级语言实现),再以它为工具构造一个能够编译更多语言成分的较大编译程序。如此扩展下去,越滚越大,最后形成所期望的整个编译程序。滚雪球! 课本 图1.8 Page10 * 1.6 编译程序的其它有关技术 1.6.2 编译的移植技术 ——将一个机器(宿主机)上的一个具有自编译性的高级语言编译程序移植到另一个机器(目标机)上。 利用A机器上的高级语言L编写能在B机器上运行的高级语言L的编译程序。 如下图: * 1.6 编译程序的其它有关技术 1.6.2 编译的移植技术 ——将一个机器(宿主机)上的一个具有自编译性的高级语言编译程序移植到另一个机器(目标机)上。 利用A机器上的高级语言L编写能在B机器上运行的高级语言L的编译程序。 * 1.6 编译程序的其它有关技术 1.6.3 编译程序自动化 1.词法分析生成器 如:LEX (接受正规表达式) 2.语法分析生成器 如:YACC (接受LALR(1)文法) 课本 图1.9 图1.10 Page12 * 1.6 编译程序的其它有关技术 1.6.4 程序的可再入性 ——程序执行过程中,可以随时中断其执行进程,也可随时从中

文档评论(0)

三四五 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档