解释型语言和编译型语言的比较

解释型语言代表:PHP、JS、Python、Perl 和Shell。
编译型语言代表:C、C++、Golang

JAVA这门语言比较特使,它是通过jit compile(just in time compilation)先将.java编译成.class文件,然后被jvm,即Java Virtual Machine(Java虚拟机)“解释执行”,因此很多人将JAVA理解为半编译半解释型语言。

编译型语言,字面意思,就是必须先通过特殊的编译器,比如C、C++的gcc(GNU Compiler Collection)。

解释型语言,通过语言解释器,将代码按顺序解释并执行,可以想象成一台扫描仪扫描文件的过程。

优缺点:
编译型语言:
  优点:执行速度快。
  缺点:可移植性差,代码不支持跨平台,移植到其他平台需要重新编译,修改代码都需要重新编译。

解释型语言:
  优点:执行速度慢。
  缺点:可移植性好,代码可跨平台,修改代码不需要重新编译。

编译型语言由于先将程序代码编译成机器可以识别的机器码,因此执行效率更高,执行速度往往比解释型语言快数倍,而解释型语言就多了解释的过程(将代码解释成机器码),因此效率低。

编译型语言生成的目标文件是针对特定CPU体系,仅适用于特定ARM,这就是为什么移植到其他CPU上就需要适配,重新编译打包。
解释型语言的解释器实际上就是实现代码到底层的沟通的一个中间层,将机器无法理解的代码解释为目标CPU指令,因此具有跨平台特性。

简单总结:编译型语言在编译时就定死目标平台,将代码编译成目标平台可直接识别的底层指令,一步到位。解释型语言在运行过程中才生成目标平台的指令,需要经过解释器这个中间商交互,最终生成目标平台可直接识别的底层指令。

解释型语言和编译型语言的比较相关推荐

  1. python语言是编译型语言-Python程序的执行过程原理(解释型语言和编译型语言)...

    Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是Python是一门解释型语言,我就这样一直相信下去,直到发现.pyc文件的存在,如果真是解释型语言,那么生成的 ...

  2. python语言采用编译执行方式_Python程序的执行过程 解释型语言和编译型语言

    我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言,那么生成的*.pyc文件是什么呢?c应 ...

  3. foreach和while的区别(编译之后)_一文了解解释型语言和编译型语言之区别

    引言 ​ 我们学了这么久的编程,做了那么多的项目,但总有那么一些概念即模糊又清晰,比如我们今天要细谈的解释型语言和编译型语言. 何谓解释?何谓编译? 这一切要从我们学习C语言的时候开始. 所有学过C语 ...

  4. 计算机编程语言的分类,解释型语言、编译型语言、脚本语言的区别

    原文传送门:http://blog.csdn.net/liuchuo/article/details/52014764 计算机编程语言的分类: 机器语言(二进制代码) 汇编语言(面向机器的程序设计语言 ...

  5. python采用编译型方式执行_Python程序的执行过程 解释型语言和编译型语言

    我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言,那么生成的*.pyc文件是什么呢?c应 ...

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

    解释型语言和编译型语言的区别 首先,我们编程都是用的高级语言(写汇编和机器语言的大牛们除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算机才能运行高级 ...

  7. 计算机编程语言的分类,解释型语言、编译型语言、脚本语言的关系

    计算机编程语言的分类: 机器语言(二进制代码) 汇编语言(面向机器的程序设计语言) 高级语言(按转换方式可分为两类:1.编译型语言;  2.解释型语言   ||  按照客观系统的描述可分为两类:1.面 ...

  8. JAVA是解释型语言还是编译型语言

    JAVA是解释型语言还是编译型语言 Under J2SE | 三月 10th, 2010 1 comment JAVA是解释型语言还是编译型语言 概念: 编译型语言:把做好的源程序全部编译成二进制代码 ...

  9. Python程序的执行过程 解释型语言和编译型语言

    转载地址:http://www.cnblogs.com/kym/archive/2012/05/14/2498728.html 1.C++和C都是属于编译型语言,本来的.c文件都是用高级语言编写的,计 ...

  10. JavaScript基础第01天笔记——编程语言、计算机基础、JavaScript注释、JavaScript输入输出语句、变量的概念、变量的使用、数据类型、解释型语言和编译型语言、关键字和保留字

    1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的指令集合,而程序全部都是用我们所掌 ...

最新文章

  1. vector notes
  2. [转载] 羽毛球——学打羽毛球 09 步法的基本概念
  3. Go语言通过odbc驱动连接华为高斯数据库
  4. 商桥物流完成达晨创投领投2.5亿元A+轮融资,创建立体化零担物流网络
  5. 漫谈Google的Native Client(NaCl)技术(二)–技术篇(兼谈LLVM)
  6. Linux常用命令的缩写含义
  7. STM32 OSAL操作系统抽象层的移植
  8. 便携版的FeedDemon
  9. 浅墨博客《Real Time Rendering 3rd》提炼总结 截取(一)
  10. 用数组统计学生各个分数段成绩的人数
  11. 手机号不用后,这操作必须要做,不然银行卡里的钱就别人花了
  12. 3DMAX游戏角色装备腿部护甲建模教程(二)
  13. 解决U盘中文件全部变成快捷方式的问题
  14. “知识共享”扎根中国,前景无量
  15. android4.2 拦截power键,Android 屏蔽Power键 Home键
  16. RobotFramework入门(一)简要介绍及使用
  17. XMLSchema 注解
  18. 各省金融机构存贷款余额、GDP、金融化程度、城镇化率、大专以上人口比重等(2012-2019年)
  19. CNN与RNN对比 CNN+RNN组合方式
  20. sql2005的级联和子查询

热门文章

  1. 推荐一款好用的串口波形显示助手----虚拟示波器
  2. 简单使用Kali WiFi破解实例
  3. 3dmax:3dmax三维设计之各种材质参数化设置之贴图九大经典案例(图文教程,建议收藏)
  4. 使用SQL语句创建数据表
  5. android动画流畅优化,这样优化安卓手机,起码增加流畅度30%
  6. 谷歌浏览器怎么缩放到130%
  7. 十条绿色IT最佳实践共建高效节能数据中心
  8. 判定覆盖(Decision coverage)
  9. 【MySQL】Got an error reading communication packets
  10. YAML文件实例详解