编译原理演示文稿.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文档。上传文档
查看更多
编译原理演示文稿

编译原理演示文稿 第一章 语言处理程序的发展过程 1.1 语言处理程序的发展过程 1.1.1 概述 语言处理工作起源于计算机软件设计者描述的在数据集合上的算法与运行该数据集合上的算法的计算机系统的差异。而早期的所用机器语言编制的程序不存在这种差异,因而不需要语言处理程序。随着汇编语言的产生这种差异也随之产生,程序设计者用符号指令代替目标机器指令来说明其算法,这样程序设计者的符号描述和目标机器的运行产生了差异,解决这种差异的就是第一种语言处理程序——汇编程 序。到了二十世纪五十年代中、后期大批如ForTran、Algol、Pascal的高级语言的相继出现,这样程序员描述的算法和实际运行的机器之差异越来越明显,新的语言处理程序——编译程序也就相继产生。随着计算机的应用的逐步扩大,软件已不是单纯的描述数据集合上的算法的程序,它还包括各种数据和文档。因此其程序设计语言发展到了八十年代,面向对象的程序设计语言也就相继产生,如:Delphi、C++,从而程序设计者描述的的有关计算机软件的特性及想法和在计算机系统的具体实现的差异变得也越来越大,填补这种差异的也是语言处理程序。 定义1.1 语言处理程序是一种可以填补说明间距或执行语言处理程序间距的软件 对于应用领域的具体问题,可以用一种说明语言SL(源语言)来描述,SL可用经变换成等价的说明语言L1,L1经变换成L2,L2经变换成L3……,Ln经变换成TL(目标机器语言)。此时怎样来描述“说明间距”和“执行间距”的概念呢?其实相对于某个Li来说,从应用领域的具体问题到SL或Li语义间距都是说明间距,而从SL或任一个Li到SL都是执行间距。 语言处理程序主要提供了一种语言到另一种语言的变换,由于高级语言使用方便,目前绝大多数用户使用高级语言设计应用软件。因此解释和说明高级语言是如何运行的,对理解语言处理程序来说是十分必要的。高级语言通过称为编译程序的语言处理程序把它们翻译成称为目标语言的机器语言或汇编语言一类低级语言,然后使用填补执行间距的软件得到机器语言程序,运行机器语言程序获得最终结果。 1.1.2 语言处理程序的工作 语言处理工作可以分为程序生成工作和程序执行工作,它们分别来填补说明间距和执行间距。 程序生成工作的作用是将某一应用领域的源程序生成相应的目标程序。程序生成工作的目标是程序的自动生成。程序生成器是一种软件系统,它接受被生成程序的说明书,并根据说明书说明的规则自动生成可以运行的程序。如编译程序、 LEX(词法分析程序生成器)都是程序生成器,编译程序接受某程序设计语言格式的源程序生成目标机器上的用目标程序。LEX 程序接受LEX源程序生成词法分析程序。 程序执行工作的作用是将目标程序装入运行的计算机系统,并按照程序的指令系列运行程序。目前目标语言是低级语言,故通常是面向过程的。而源语言可以是面向问题、面向对象或面向过程的。 例: 根据平面几何的命题生成作图程序。在一个输入环境中,输入:已知三角形的二条角平分线相等,求证:该三角形是等腰三角形。系统先检验其有效性,如:是否能构成二条角平分线相等的等腰三角形等。在说明有效的前提下产生相应的若干画直线的语句的作图程序 。最后证明其结论。 这样程序生成器引出了一个新的领域,它介于应用域和目标程序域之间的域,称之为程序生成器说明域。从而说明间距变为从应用域到程序生成器说明域之间的间距。由于这一间距往往比从应用领域到目标程序域的间距要小得多,这样间距的缩小提高了程序的可靠性。从而使设计者可程序员为将生成的程序编写说明书更加容易。由程序生成器域到目标程序域之间的大量工作量都是有生成器来完成的,减少 了程序的测试工作、程序的正确性验证问题。如例1-1中?用户不必考虑画直线的算法以及如何画直线保证其线段的相等等问题 。 程序执行工作的目标是完成程序的运行。从目标程序的说明域到目标机器的执行域仍存在一定的间距,完成其工作的程序称为程序的执行。 程序的执行主要包括: 装入目标程序。 取得一条语句或指令。 分析该语句以及确定所操作的数据集合。 完成该语句的含义,对定义的数据集合产生相应的变换。 程序的执行工作的方式取决于目标代码的形式、运行的目标机器和执行时的资源开销(所占用的时间和存储空间)。如果目标程序是机器语言代码,则目标程序的执行效率是高的。它比其它非机器语言的目标代码的执行要快得多。因此目前的目标代码仍多数是类似于机器语言或汇编语言的一类低级语言。 1.1.3 语言处理程序的形式 语言的处理形式主要是由填补说明间距和填补执行间距的程序两大类。 语言的翻译程序,如汇编程序、编译程序它填补了程序设计语言到

文档评论(0)

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

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

1亿VIP精品文档

相关文档