编译型语言和解释型语言的区别以及两者分别的编译过程,看这篇文章就轻松搞懂咯!

在这里插入图片描述

在开始接触编程时就听闻了这两种概念,当时还很难理解他们的区别,现在对其区别有一定的理解,因此用此文章简要介绍一下两者。网上相关的博客也很多,因此我将简化文章,力求从原理上讲通,抓住本质,利于理解。


编译

要知道对于计算机来说,它是不能直接执行高级语言写出的代码的,计算机最终执行的是其CPU上的微指令,机器语言就是一系列包含微指令集的程序语言或指令代码的集合,其无需经过翻译就能直接在计算机的电路中直接运行。由于计算机有不同型号,因此不同的计算机都有各自的机器语言,即指令系统,也正因此机器语言几乎是不可移植的。

比机器语言高级一点的就是汇编语言了,汇编语言用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址,因此其仅为对机器语言进行了简单的编写。汇编语言制作的程序在执行时仅需经过简单的编译过程,汇编语言的指令集同机器语言一样,与所使用机器自身的编程环境息息相关,可移植性很差,因此汇编语言仅为一门低级语言,一般不用于程序设计。

在汇编语言之上就是我们平常接触最多的高级语言了,由于汇编和机器语言的移植性很差,因此这种独立于机器,面向过程或对象的语言被创建出来,我们现在使用的几乎所有编程语言都是高级语言(如Java、C、python等等),高级语言还具有接近自然语言使用方式的特点,因此其广泛被人们用于程序设计和开发。

高级语言由于不能直接访问机器硬件资源的系统软件或设备控制软件,因此高级语言制作好的程序需要经过编译过程才能被机器所执行,编译产生的可执行文件也被称为“目标程序”,其内容是可直接被计算机运行的机器码集合。在某些情况下,某些语言可能还会提供与汇编语言之间的接口,用于运行时调用汇编语言制作好的某些程序。

在linux系统中,成熟的源码程序安装时一般会使用make命令进行编译,有兴趣的可以参考我前面的文章:linux中安装软件源码的过程中configure、make和make install分别起什么作用?

接下来介绍的编译型语言和解释型语言都是针对高级语言来说的。

编译型语言

编译型语言正如其名,其是一种在程序制作完成后需要被编译器程序编译一次的语言,编译后会生成可执行文件,这种可执行文件可以直接在之后每次调用程序时被直接使用而不需要每次都编译,这样就大大提升了效率。

但是结合上面第一部分介绍的高级语言编译过程,就知道了编译产生的可执行文件中是一系列的机器码集合,而这些机器码与机器自身配置有关,要在不同的计算机上运行就需要对高级语言制作的程序进行再次的编译,以在新的计算机上产生新的可执行文件。

综上能看出编译型语言的特点为运行速度快,代码效率高,可移植性差,对源代码的修改很麻烦。

典型的编译型语言就是C,C程序制作好后需要进行编译一次才能够运行,在linux系统中可以使用gcc程序对制作好的C程序进行编译。

解释型语言

解释型语言与编译型语言的区别就在于解释型语言是在程序每次执行时一句一句的对写好的程序代码进行编译的,这样一句一句的进行编译很像解释的操作,因此解释型语言中的编译一般被叫做“解释”。与编译型语言相比,解释型语言可移植性高(因为不需要制作好代码后就产生目标程序,而是只需要对程序源代码进行移植即可),执行效率低(因为每一次执行代码都多出一个编译的过程),灵活性高(可以随意修改源代码内容,而编译型语言修改后需要重新编译)。

解释型语言的典型代表有python、R、Java等。

参考:编译型语言和解释型语言
参考:https://zhidao.baidu.com/question/1580915284179691540.html
参考:百度百科

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值