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