编译与解释

计算机语言定义程序的属性而不是程序执行的方式,理解这一点是很重要要的。程序执行一般有两种方式,即编译的(compiled)或解释的(interpreted)。尽管用任何计算机语言编写的程序都可以编译或解释,但有些语言主要是为一种执行方式设计的。


比如,Java是用来解释的,而C是用来编译的。就C而言,应当理解它是被明确指定为编译语言而得到优化的。虽然已编写出的C编译程序可以用于某些环境(如调试手段或实验平台),但C的开发是以编译为核心的。所以,当程序员开发自己的C程序时,所用的必定是C编译程序而非C解释程序。


在最简单的情况下,解释程序每次读取一行用户程序的源代码,执行该行中所包含的特定指令。这正是BASIC早期版本的工作方式。在类似Java这样的语言中,首先将程序的源代码转换成过渡的形式,然后再进行解释。为了执行用户程序,这两种情况均需要提供运行时的解释程序。编译程序一次读完全部程序,并把它转换成目标码。目标码是源代码转换成能够在计算机上直接运行的代码,常指二进行码或机器码。程序被编译之后,源代码对程序的执行就没有意义了。


通常,解释程序的运行速度较编译程序慢,编译程序将程序的源代码转换成计算机可以直接执行的目标代码。 因此,编译是一次性开销,而解释则每次运行时都引起额外的开销。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值