第一章 编译原理概况.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文档。上传文档
查看更多
编 译 原 理 (第二版) 张素琴 吕映芝 蒋维杜 戴桂兰 编 在此阶段的任务是对前阶段产生的中间代 码进行变换或进行改造,目的是使生成的目标 代码更为高效,即省时间和省空间。 局部优化 优化 循环优化 第5阶段 代码优化 在实例中: (1) (inttoreal,10 ,- , t1 ) (2) (* ,id3 ,t1, t2 ) (3) (+ ,id2 ,t2, t3 ) (4) (:= ,t3 ,- , id1) 可变换为 (1) (* ,id3 ,10.0,t1 ) (2) (+ ,id2 ,t1 ,id1) 目标代码生成的任务是把中间代码变换成特定机 器上的绝对指令代码或可重定位的指令代码或汇 编指令代码。 这是编译的最后阶段,它的工作与硬件系统 结构和指令含义有关,这个阶段的工作很复杂, 涉及到硬件系统功能部件运用、机器指令的选择 、各种数据类型变量的存储空间分配以及寄存器 和后缓寄存器的调度等。 第6阶段 目标代码生成 用两个寄存器(R1和R2)可能生成如图 1.9的某汇编代码。 (1)MOV id3 , R2 (2)MUL #10.0 , R2 (3)MOV id2 , R1 (4)ADD R1 , R2 (5)MOV R1 , idl 目标代码生成实例 第一条指令将 id3的内容送至寄存器 R2, 第二条指令将其与实常数 10.0相乘。这里用#表明10.0处理为常数, 第三条指令将id2 移至寄存器R1, 第四条指令加上前面计算出的R2中的值 , 第五条指令将寄存器RI的值移到id1地址中 生成目标代码的解释 (1)前面提到过上述编译过程的阶段划分是一理 想处理模式。 (2)事实上并非所有的编译程序都分成这样几个 阶段、有些编译程序并不要生成中间代码.有些 编译程序不进行优化,优化阶段即可省去。 (3)有些最简编译程序在语法分析的同时产生目 标指令代码。 总 结 1.2.2 编译程序的结构 表 格 管 理 程 序 词法分析程序 语法分析程序 语义分析程序 中间代码生成程序 目标代码生成程序 出 错 处 理 程 序 源程序 目标程序 代码优化程序 共63页, Page* 参考文献 1.胡伦俊,徐兰芳,骆婷.编译原理.清华大学出版社,1998 2.陈火旺,钱家桦,孙永强.程序设计语言编译原理.国防工业出版社,2000 3.杜淑敏,王永宁.编译程序设计原理.北京大学出版社,1986 4.俞瑞钊.数理逻辑.浙江大学出版社.1990 第1章 引 论 主要内容 1.编译程序 2.编译过程 3.编译程序的结构 4.编译程序的生成方法 1.1 什么是编译程序 首先看一个示例: Main() { int I,j; j=20; I=j++; printf(“i=%d,j=%d”,I,j); } 在tubro c下存为 AB.c文件,它是 不能执行的,必 须要complier后 生成AB.exe文件 才能执行 Delphi7.0的编译器 VC,VB,JAVA等都 有自己的编译器 什么叫编译程序(compiler)? 编译程序就是在一个开发工具中,将高级语言 (如Pascal,C,Java等)写成的代码翻译成低 级语言(如汇编或机器语言)的一个等价程序。 编译程序 源程序 目标程序 高级语言所写程序 汇编语言或者机器语言程序 (1). 从功能上看,一个编译程序就是一个语言翻译程序。它把一种语言(称作源语言)书写的程序翻译成另一种语言(称作目标语言)的等价的程序 (2).一个编译程序的重要性体现在它使得多数计算机用户不必考虑与机器有关的繁琐细节,使程序员和程序设计专家独立于机器。 编译程序的特点 (3).一个源程序有时可能分成几个模块存放在不同的文件里,将这些源程序汇集在一起的任务,由一个叫预处理程序的程序来完成。有些预处

文档评论(0)

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

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

1亿VIP精品文档

相关文档