网站大量收购独家精品文档,联系QQ:2885784924

第一章编译原理基础.pptVIP

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译阶段的组合 前端、后端 分析、综合 遍 前端和后端 前端包括编译逻辑结构中的分析部分,即词法分析、语法分析、语义分析和中间代码生成,除此还包括符号表建造及相应分析中的错误处理以及与机器无关的优化部分。 后端包括与目标机有关的部分,即综合部分,它包括目标代码生成及生成期间对符号表的相应检索操作和错误处理操作,以及与机器相关的代码优化部分。 将编译系统划分为前后端,有利于移植编译系统和利用后端为同一目标机配置不同语言的编译系统。 编译阶段的两大步骤∶分析和综合 分析步骤是指对源程序的分析  -线性分析(词法分析或扫描)  -层次分析(语法分析)  -语义分析 综合步骤是指后端的工作,为目标程序的生成而进行的综合 遍(pass) 对源程序(或其中间形式)从头至尾扫描一次并进行有关加工处理,生成新的中间形式或最终目标程序,称为一遍。 注:遍与阶段的含义毫无关系 多遍扫描 优点:节省内存空间,提高目标代码质量,使编译的逻辑结构清晰 缺点:编译时间较长 注:在内存许可情况下,还是遍数尽可能少些 一遍扫描(以语法分析为中心) 分遍原则∶ ①目标质量高低(高则多遍) ②机器内存大小(小则多遍) ③源语言简繁(繁则多遍) ④设计人员多少(多则多遍) 编译程序生成 直接用机器语言编写编译程序 用汇编语言编写编译程序 注:编译程序核心部分常用汇编语言编写 源程序 目标程序 编译程序 汇编语言程序 汇编 用高级语言编写编译程序 注:这是普遍采用的方法 源程序 目标程序 编译程序 C语言源程序 C语言编译器 自编译 编译工具: LEX(词法分析)与YACC(用于自动产生LALR分析表) 移植(同种语言的编译程序在不同类型的机器之间移植) 编译程序构造 在某机器上为某种语言构造编译程序要掌握以下三方面: 源语言 目标语言 编译方法 本章小结 掌握编译程序与高级程序设计语言的关系 掌握编译分为哪几个阶段 了解各个阶段完成的主要功能和采用的主要方法 参 考 书 吕映芝等,编译原理,清华大学出版社 陈意云等,编译原理,高等教育出版社 杜淑敏等,编译程序设计原理,北京大学出版社 Alfred V.Aho等,编译原理,机械工业出版社 Terrence W.Pratt,Marvin V.Zelkowitz Programming Languages Design and Implementation, Prentice-Hall 1996 * * ① 词法分析Scanner 任务∶识别单词符号,是最初级的语法分析。 例:position:=initial+rate*10; 标识符:position 算符::= 标识符:initial 算符:+ 标识符:rate 算符:* 整数:10 界符:; 依循的规则:语言的构词规则 例: int a; a=a+2; 单词类型 单词值 保留字 int 标识符 a 界符 ; 标识符 a 算符(赋值) = 标识符 a 算符(加) + 整数 2 界符 ; 识别右边程序中的单词 基本字: 标识符: 常数: 运算符: 界限符: void jisuan() { int y,c,d; float x,a,b; x=a+b*50; y=c+)d*(x+b; } void int float a b c d x y jisuan 50 + * = { } ; , ( ) 语法分析依照词法规则,识别出正确的单词,转换成统一规格,备用 转换 对基本字、运算符、界限符的转换 标识符的转换 常数的转换 转换完成后的格式:(类号、内码) 描述词法规则的有效工具是正规式和有限自动机 ② 语法分析Parser 任务∶ 在词法分析的基础上,根据语言的语法规则,将单词符号组成各类的语法单位:短语、子句、语句、过程、程序 语法规则: 语言的规则:又称为文法:规定单词如何构成短语、语句、过程和程序 语法规则的表示: BNF:A::=B|C 例:句子::=主语谓语宾语 主语::=定语名词 赋值语句的语法规则 A::=V=E E::=T|E+T T::=F|T*F F::=V|(E)|C V::=标识符 C::=常数 例:“id1=id2+id3*10” 赋值语句 语法分析的方法 推导(derive)和归约(reduce) 推导 最左推导、最右推导 归约 最左归约、最右归约 语句id1=id2+id3*10的语法树 赋值语句 标识符 表达式 表达式 + 表达式 表达式 标识符 整数

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档