编译原理第一章概述.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文档。上传文档
查看更多
编译原理第一章概述

编 译 原 理 提交作业方式: 电子版(默认)/手写均可 邮件标题:作业-班号-姓名-作业号 例如:软件专061班张三同学第1章作业 邮件标题为:作业-软件专071-张三-1 每次作业用1个文件上交。如果需要多个文档,则使用winrar压缩成1个文件后上交。 文件名同邮件标题。 课程要求 讲课进度较快,平时不复习并加深理解,后面可能听不懂。 作业较多,要求独立完成。 上机实验,要求给予足够重视。 一、学习编译原理的意义 对编程语言的设计和实现有深刻的理解,对和编程语言有关的理论有所了解,对宏观上把握编程语言来说,起一个奠基的作用。 从软件工程看,编译器是一个很好的实例,所介绍的概念和技术能应用到一般的软件设计之中。 大多数程序员同时是简单语言的设计者,有助于提高对这些语言的设计水平。 在软件逆向工程、程序理解和软件安全等方面有着广泛的应用。 要求先学习以下课程 1.程序设计语言 2.算法与数据结构:栈分配、堆分配、静态分配等各种存储分配方式。线性表、二叉查找树、哈希表等多种数据结构。 3.离散数学:集合论与数理逻辑是进一步学习形式语言与自动机理论的数学基础。 最好学习过或同时学习以下课程 1.软件工程:掌握大型程序设计以及工程化的软件生产方法。 2.形式语言与自动机:相当于本课程中词法分析与语法分析的理论基础。 学好离散数学、数据结构、操作系统、编译原理这四门计算机专业的主干课,对自己的可持续发展是至关重要的,可惜这样的体会在工作中才得出(离散、DS、算法、编译、组成原理、DBS原理)。 教材及参考书 教材:编译技术(第二版) 参考书: 1、Compilers: Principles,Techniques,and Tools(龙书) 作者:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman 2、Modern Compiler Implementation in C/JAVA(虎书) 作者:Andrew W.Appel,with Jens Palsberg 3、Advanced Compiler Design and Implementation(鲸书) 作者:Andrew W. Appel 4、程序设计语言编译原理 作者:陈火旺 5、编译原理 作者:陈意云 6、编译原理 作者:吕映芝 CH1 概论 1.1 程序设计语言及编译程序 机器语言:能够被计算机的硬件系统直接执行的指令程序。 汇编语言:将硬件指令用一些助记符表示。如ADD表示加法操作,SUB表示减法操作等等。称为符号化的机器语言。 高级语言:使用便于理解的自然语言。这类语言完全摆脱了机器指令的约束,用它编写的程序接近自然语言和习惯上对算法的描述,故称为面向用户的语言。后来,又相继出现许多专门用于某个应用领域问题的专业语言,例如用于数据库操作的SQL语言,这类语言称为面向问题的语言。 翻译程序: 将源程序转换为目标程序的程序称为翻译程序。它是指各种语言的翻译器,包括汇编程序和编译程序,是汇编程序、编译程序以及各种变换程序的总称。 “翻译程序”将高级语言编制程序翻译成与之等价的汇编语言或机器语言程序,这种“翻译程序” 就称为“编译程序” (或编译器) 。 “翻译程序”将汇编语言编制的程序翻译成机器语言程序,这种“翻译程序”称为“汇编程序” 。 “翻译程序”将源程序按动态顺序逐句进行分析解释翻译,边解释边执行,不产生目标程序,这种“翻译程序”称为“解释程序”。 对某种语言来说,其编译程序再加上一些相应的支持用户程序运行的子程序构成的运行系统合称为该语言的编译系统。编译系统是计算机的重要组成部分。 源程序、翻译程序、目标程序三者关系: 1.2 编译过程和编译程序结构 编译程序的主要功能是将一种高级语言程序翻译为等价的机器语言或汇编语言程序,实现的是语言的翻译,那么我们可以和英文的翻译过程类比。 尽管编译过程和英文翻译的过程比较类似,但编译程序所翻译的毕竟不是自然语言,所以有自身特有的工作。比如中间代码的生成,编译过程中信息表的构造与查询以及运行时存储空间的分配,对语法和语义错误的处理等。 1.词法分析程序 2.语法分析程序 3.语义分析程序 4.中间代码生成 5.代码优化 6.目标代码生成 7.错误处理程序 8.信息表管理程序 把编译程序分为前端和后端的优点是便于编译程序的构造、移植。例如当需要改动源语言时(如源语言版本升级),只须修改编译程序前端。当需要变更一种语言的目标计算机时(即移植编译程序),只须重新开发相

文档评论(0)

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

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

1亿VIP精品文档

相关文档