解释型语言和编译型语言的区别

产生原因
因为计算机是不能直接理解和识别高级编程语言的,更不能执行高级语言。它只能直接理解机器语言,所以在计算机上执行高级语言都会先将高级语言经过层层转换成机器语言。
两种转换方式:

  • 编译
  • 解释

转换流程
在这里插入图片描述
在这里插入图片描述


编译型语言

概述
使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行程序的格式。
特性
编译和执行是分开的,但是不能跨平台。例如:Delphi、C++和C等是直接编译成exe文件,以后要运行的话,直接使用编译文件不用重新编译,直接使用之前编译的结果,所以效率较高。
控制权
对于编译器而言,运行时的控制权在用户程序。
适用场景
由于程序执行速度快,同等条件下对系统的要求比较低,因此像开发操作系统、大型应用程序、数据库系统等都使用它。
优缺点

  • 优点:运行速度快,代码效率高,编译后程序不可以修改,保密性好。
  • 缺点:代码需要编译才能运行,可移植性差,只能在兼容的操作系统上运行。

解释型语言

概述
使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。
特性
解释型语言程序不需要编译,省了道程序,在程序运行的时候才进行翻译。专门有一个解释器执行程序,每一条语句都是执行的时候才翻译。这样解释一句每执行一句翻译一句,再次执行时又要重新翻译,执行效率较低。
控制权
对于解释型语言而言,程序运行时的控制权在解释器而不再用于程序。
适用场景
一些网页脚本,服务器脚本以及辅助开发接口这样的对速度要求不高,对系统兼容性有一定要求的程序则通常使用解释性语言如:Java、JavaScript、Perl、Python、Ruby、Matlab等。
优缺点

  • 优点:可移植性好,只要有解释环境,可以在不同的操作系统上运行。比如在解释执行时可以动态改变变量类型、对程序进行调试,程序不用改动就可以在移植了解释器的系统上运行了。
  • 缺点:运行需要解释环境,运行起来比编译慢,占用的资源也要多一些,代码效率低,不仅要给用户程序分配空间,解释器本身也占用了系统的资源。其封装层代码程序严重依赖平台,不能像C++和VB那样直接操作底层。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值