编译原理基本概念.pdfVIP

  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. 词法分析 (Lexical analysis 或 Scanning 和词法分析程序 (Lexical analyze 或 Scanne ) 词法分析阶段是编译过程的第一个阶段。 这个阶段的任务是从左到右一个字符一 个字 符地读入源程序, 即对构成源程序的字符流进行扫描然后根据构词规则识别 单词(也称 单词符号或符号 ) 。词法分析程序实现这个任务。词法分析程序可以使 用 lex 等工具 自动生成。 3. 语法分析 (Syntax analysis 或 Parsing)和语法分析程序 (Parse ) 语法分析是编译过程的一个逻辑阶段。 语法分析的任务是在词法分析的基础上将 单词 序列组合成各类语法短语,如 “程序”,“语句”,“表达式”等等.语法分析程序 判 断源程序在结构上是否正确 .源程序的结构由上下文无关文法描述 . 4. 语义分析 (Syntax analysis 及中间代码生成 语义分析是编译过程的一个逻辑阶段 . 语义分析的任务是对结构上正确的源程 序进行上下文有关性质的审查,进行类型审查.例如一个 C 程序片断: int arr[2],b; b = arr * 10; 源程序的结构是正确的 . 语义分析将审查类型并报告错误 :不能在表达式中使用一个数组变量 ,赋值语句的 右 端和左端的类型不匹配 .语义分析时,根据语句的含义,可对它进行翻译,用 另一种语 言形式(比源语言更接近于目标语言的一种中间代码或直接用目标语 言)来描述这种语 义。 5. 代码优化 代码优化的任务是对前阶段产生的中间代码进行等价变换或改造, 以期获得更为 高效 的,即省时间和空间的代码。 6. 目标代码生成 目标代码的生成的任务是将中间代码变换成特定机器上的绝对指令 代码或可重 定位的指令代码或汇编指令代码。 7. 遍 8. 前端(Front — end)和后端 (Back end) ( 有时,常常把编译的过程分为前端 front end)和后端(back end),前端由那样一些 阶段 组成:这些阶段的工作主要依赖于源语言而与目标机无关。 通常这些阶段包 括词法分 析、语法分析、语义分析和中间代码生成, 某些优化工作也可在前端做, 也包括与前 端每个阶段相关的出错处理工作和符号表管理工作。 后端工作指那 些依赖于目标机而 一般不依赖源语言, 只与中间代码有关的那些阶段, 即目标代 码生成,以及相关出 错处理和符号表操作。 编译程序和解释程序 9. Lex 一个词法分析程序的自动生成工具。它输入描述构词规则的一系列正规式 ,然后 构建有 穷自动机和这个有穷自动机的一个驱动程序 ,进而生成一个词法分析程序 . 10. Yacc 一个语法分析程序的自动生成工具。它接受语言的文法 ,构造一个 LALR(1) 分析 如文档对您有帮助,欢迎下载支持,谢谢! 程序 .因为它采用语法制导翻译的思想 ,还可以接受用 C 语言描述的语义动作 ,从 而构 造一个编译程序.Yacc 是 Yet another compiler compiler 的缩写. 11. 源语言 (Source language 和源程序(Source program 被编译程序翻译的程序 称为源程序 ,书写该程序的语言称为源语言 . 12. 目标语言(Object language or Target language 和目标程序 (Object program or Target program 编译程序翻译源程序而得到的结果程序称为目标程序 , 书写该程序的语言称为 目标语 言 . 13. 中间语言(中间表示 ( Intermediate language(representation) 在进行了语法 分析和语义分析阶段的工作之后, 有的编译程序将源程序变成一种 内部表示形式,这 种内部表示形式叫做中间语言或中间表示或中间代码。 所谓 “中间代码 ”是一种结 构简单、含义明确的记号系统,这种记号系统复杂性介于源程 序语言和机器语言之 间, 容易将它翻译成目标代码。

文档评论(0)

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

三更灯火五更鸡,正是男儿读书时

1亿VIP精品文档

相关文档