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