第一章 编译原理绪论(1)——编译原理基本概念

       计算机硬件只懂自己的指令系统,即只能直接执行相应机器语言格式的代码程序,而不能直接执行用高级语言或汇编语言编写的程序。因此,要在计算机上实现除机器语言之外的任一程序设计语言,就首先应使此种语言为计算机所“理解”。解决这一问题的方法有两种:一种是对程序进行翻译;另一种是对程序进行解释

1)、翻译程序

       所谓翻译,是指在计算机中放置一个能由计算机直接执行的翻译程序,它以某一种程序设计语言(源语言)所编写的程序(源程序)作为翻译或加工的对象,当计算机执行翻译程序时,就将它翻译为与之等价的另一种语言(目标语言)的程序(目标程序)。“源”和“目标”这两个术语,总是相对于一类特定的翻译程序和翻译过程而言的。如果一个翻译程序的源语言是某种高级语言,其目标语言是相应于某一计算机的汇编语言或机器语言,则称这种翻译程序为编译程序(或编译器)。汇编程序也是一种翻译程序,它的源语言和目标语言分别是相应的汇编语言和机器语言

       由此可觅,欲按编译方式在计算机上执行用高级语言编写的程序,一般须经过两个阶段:第一阶段称为编译阶段,其任务是由编译程序将源程序编译为目标程序,若目标程序不是机器代码,而是汇编语言程序,则尚需汇编程序再行汇编为机器代码程序;第二阶段称为运行阶段,其任务是在目标计算机上执行编译阶段所得到的目标程序。在执行目标程序时,一般还应有一些子程序配合进行工作,例如:常见的数据格式转换子程序、标准函数计算子程序、浮点解释子程序、数组动态存储分配子程序、下标变量地址计算子程序等都属此类。这些子程序组成一个子程序库,称为运行系统。

       编译程序与运行系统合称为编译系统。源程序的编译(或汇编)和目标程序的执行不一定在同一种计算机上完成。当源程序由另一种计算机进行编译(或汇编)时,我们将此种编译(或汇编)称为交叉编译(或汇编)。

2)、解释程序

       用高级语言编写的程序也可以通过解释程序来执行。解释程序也以源程序作为它的输入,它与编译程序的主要区别是在解释程序的执行过程中不产生目标程序,而是解释执行源程序本身。这种边翻译边执行的方式工作效率很低,但由于解释程序的结构比编译程序简单,且占用内存较少,在执行过程中也易于在源程序一级对程序进行修改,因此一些规模较小的语言,如BASIC,也常采用此种方式。然而就目前的情况来看,纯粹的解释程序并不多见,通常的做法是把编译和解释作某种程度的结合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值