《编译原理复习清华吕映芝.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文档。上传文档
查看更多
《编译原理复习清华吕映芝

编译原理 清华大学计算机科学与技术系 吕映芝 2003.9.9 第1章 编译程序概论 1.1 什么是编译程序 1.2 翻译和解释 1.3 编译过程和编译程序的结构 *1.4 编译程序的实现途径 1.5 编译技术在其它软件中的应用 有关学习问题 参考书 1.1 什么是编译程序 语言和翻译:语言是人类交流思想和信息的工具。从自然语言来说,世界上存在着许多种语言,各国之间要交流信息,就要有各种语言之间的翻译。 编译程序:编译程序就是一个语言的翻译程序,是把一种语言(称源语言)书写的程序翻译成另一种等价功能语言(称目标语言)的程序。 换句话说,编译是指把一种用源语言表示的算法转换到另一种等价的用目标语言表示的算法。 1.1 什么是编译程序 编译程序的必要性: 计算机是当代科学发展的重要工具,已渗入到各行各业乃至家庭生活中。所以如何让他为人类工作服务,就必须建立人与计算机之间的信息交流。但计算机只认识由“0”和“1”构成的机器语言,并不认识C、 C++、 Java、Pascal等高级程序设计语言。每台计算机都有自己独特的指令系统,即机器语言,最早的程序就是用8进制和16进制码的机器语言书写的。 1.1 什么是编译程序 用机器语言书写程序,不仅不易学,而且可调试性、可读性、可维护性和结构性都很差,开发时间也很长。 因此,编译程序最初的定义是把一种高级程序设计语言的源程序(面向人的)翻译成另一种等价的低级程序设计语言(面向硬件的)即机器语言或汇编语言。 所以,编译程序是人用某种语言书写的某个翻译程序。 1.1 什么是编译程序 编译程序的功能 1.1 什么是编译程序 随着计算机及其应用的发展,出现了各种应用更方便的高级语言,如:FORTRAN 、 PL/1 、ALGOL 60 、 COBOL 、PASCAL 、 Ada 、 LISP 、 C 、 C++ 、 JAVA等。 早期开发的软件需转换,因此,编译程序不仅是高级语言翻译成机器语言,广泛地讲: 编译程序 高级语言?低级语言 高级语言? 高级语言 高级语言? 中间语言 中间语言 ? 低级语言 1.1 什么是编译程序 例:高级语言 ? 高级语言 FORTRAN PASCAL C JAVA PL/1 C++ COBOL 1.1 什么是编译程序 逆向工程 低级语言 ? 高级语言 例:IBM / 4700(汇编语言)? C 交叉编译 在一个机器上对某种高级语言进行编译,产生的目标语言是另一个机器的汇编语言或机器语言。例:在WAX机上编译Ada语言,产生PC机的汇编语言,这样的目标语言只能在PC机上运行,如嵌入式系统对交叉编译的应用。 当功能相同时,不同语言之间的区别,只是语言的词法、语法和语义规则形式不同。运行环境也可能不同。 例 :计算园面积 C 程序: function circle( ); { int r ; float s ; scanf (“%d”, r ); s =3.1416 * r * r ; printf (“%d \n”,s ); } 1.2 翻译和解释 翻译:按源程序的实际输入顺序,处理程 序语句,得到可执行的目标程序。 解释:按源语言的定义边解释边执行。 解释执行是按照被解释的源程序的逻辑流程进行处理的,不产生目标程序。 解释 解释执行 优点:交互方便,节省空间。 缺点:效率低。因对源程序的循环语句部分要反复解释执行。 共同点:都需进行词法、语法、语义分析。 可比喻为: 1.3 编译过程和编译程序结构 编译过程 编译程序结构 编译的趟(遍)(pass) 编译过程 词法分析 语法分析 语义分析 中间代码生成 代码优化 目标代码生成 词法分析 读字符流的源程序、识别单词 例: position := initial + rate * 60 ; (转换为内部表示,拼标识符、数和复合单词等) 单词类型 单词值 标识符(1) position 算符(赋值号) :=(复合单词) 词法分析 单词类型 单词值 标识符(2)

文档评论(0)

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

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

1亿VIP精品文档

相关文档