编译原理(西北工业大学)第节课第一部分.pptVIP

编译原理(西北工业大学)第节课第一部分.ppt

  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文档。上传文档
查看更多
编译原理(西北工业大学)第节课第一部分

[1] 蒋立源、康慕宁.《编译原理》.西北工业大学出版社。 [2] (美)Kenneth C.Louden著,冯博琴,冯岚等译。《编译原理及实践》.机械工业出版社 [3] 金成植.《编译程序构造原理和实现技术》.高等教育出版社,2000. [4] 张幸儿.《编译原理 编译程序构造与实践》.机械工业出版社,2008. [5] 陈火旺等.《程序设计语言编译原理》.国防工业出版社,2000.;网站资源: [1] /gjpxw/thujsj/009/ 清华同方编译原理在线学习网站 [2]/f?kw=%B1%E0%D2%EB%D4%AD%C0%ED 编译原理百度贴吧 [3]/jp2005/20/kcwz/wlkc/wlkc.html 西北工业大学编译原理网络课程 [4]/byyl/index.php?type=kczy 国防科技大学编译原理网络课程;第一章 绪论;第一章 绪论;但高级语言与机器之间有一“鸿沟”:机器不能理解高级语言! 因此,要在计算机上实现高级语言,需使该语言能让计算机所理解。 方法:对程序进行翻译或进行解释。 翻译:在计算机中放置一能由计算机直接执行的翻译程序,它将某程序设计语言(源语言)所编写的程序(源程序)作为加工对象,将其翻译成为与之等价的另一种语言(目标语言)的程序(目标程序)。;源程序P;可见,计算机执行某高级语言程序,需经两个阶段,即编译阶段和运行阶段。 在执行时,一般应有一些辅助子程序配合。 如:数据格式转换子程序、标准函数、动态存储分配子程序等等,由它们构成的子程序库称为运行系统。 编译系统=编译程序+运行系统;编译程序与解释程序;本课程的目的;1.1 编译过程概述;编译程序的构成;1.2 编译程序的逻辑结构;一个微型PASCAL语言的定义;程序1-1 一个PASCAL源程序source PROGRAM source;   {This little source program is used to illustrate compiling procedure } VAR  x,y,z:integer;   a:integer; BEGIN { This program has only 4 statement } x:=23+5; z:=x DIV -3; y:=z+18*3; a:=x+(y-2) DIV 4 END.;1.2.1 词法分析程序(扫描器);扫描器输出以单词为单位的单词流。 例如,以特殊符号“#”分隔的单词流: # PROGRAM # source # ; # VAR # x # , # y # , # z # : # integer # ; # a # : # integer # ; # BEGIN # x # := # 23 # + # 5 # ; # z # := # x # DIV # - # 3 # ; # y # := # z # + # 18 # * # 3 # ; # a # := # x # + # ( # y # - # 2 # ) # DIV # 4 # ; # END # . #;单词流的内部表示;单词流的内部表示;图3-1 文法G[无符号数]的状态转换图 ;b|a;1.2.2 语法分析程序(分析器);C;(a)句子 i+i*i 的语法树 (b)句型 F+i*i 的语法树;(c)句子F+F*F的语法树 (d)句型F+T的语法树;I0: S’ → · S S→ · CbBA C → · a ;1.2.3 语义分析程序;1.2.4 中间代码生成;赋值语句x:=a+b*c的 语法制导翻译过程 ;1.2.5 代码优化程序;(prologue,’source’) (store,28, ,’x’) (div,’x’,’-3’,T) (store,T, ,’z’) (add,’z’,54,T) (store,T, ,’y’) (sub,’y’,’2’,T) (div,T,’4’,T) (add,’x’,T,T) (store,T, ,’a’) (epilogue);1.2.6 目标代码生成程序;1.2.6 目标代码生成程序;1.2.7 错误检查和处理程序;1.2.8 信息表管理程序;状态转换矩阵 ;产 生 式;LL(1)分析表 ;L R (1) 分 析 表 ;图6-10 数组的内情向量 ;1.3 编译程序的组织;例如,对于要求经一遍扫描就能完成从源程序到目标代码翻译的编译程序,我们可以语法分析程序为中心来组织它的工作流程。 显然,由于整个编译程序只对源程序进行一次扫描,故不必产生中间代码

文档评论(0)

白羊起风了 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档