编译型语言(如c/c++)
对于编译型语言,开发完成以后需要将所有的源代码都转换成可执行程序,比如 Windows 下的.exe文件,可执行程序里面包含的就是机器码。只要我们拥有可执行程序,就可以随时运行,不用再重新编译了,也就是“一次编译,无限次运行”。

解释型语言(如python)
对于解释型语言,会将代码一句一句直接执行,不需要像编译型语言一样,经过编译器先行将所有源代码全部编译为机器代码,之后再执行。这种编程语言需要利用解释器,在执行期,动态将代码逐句解释为机器代码,之后再执行。

Java不同于一般的编译语言或解释型语言。它首先将源代码编译成字节码,再依赖各种不同平台上的虚拟机(JVM)来解释执行字节码,从而具有“一次编写,到处运行”的跨平台特性。这也在一定程度上降低了Java程序的运行效率。

总结:

类型 优点 缺点
编译型语言 编译一次后,脱离了编译器也可以运行(可以脱离开发环境运行),并且运行效率高 可移植性差,一般不可以跨平台(不能在不同的操作系统之间随意切换),不够灵活。
解释型语言 跨平台性好,通过不同的解释器,将相同的源代码解释成不同平台下的机器码 一边执行一边解释,效率很低。

编译型语言不能跨平台表现在两个方面:

1.可执行程序不能跨平台
可执行程序不能跨平台很容易理解,因为不同操作系统对可执行文件的内部结构有着截然不同的要求,彼此之间也不能兼容。不能跨平台是天经地义,能跨平台反而才是奇葩。
另外,相同操作系统的不同版本之间也不一定兼容,比如不能将 x64 程序(Windows 64 位程序)拿到 x86 平台(Windows 32 位平台)下运行。但是反之一般可行,因为 64 位 Windows 对 32 位程序作了很好的兼容性处理。
2.源代码不能跨平台
不同平台支持的函数、类型、变量等都可能不同,基于某个平台编写的源代码一般不能拿到另一个平台下编译。
如:在C语言中要想让程序暂停可以使用“睡眠”函数,在 Windows 平台下该函数是 Sleep(),在 Linux 平台下该函数是 sleep(),首字母大小写不同。其次,Sleep() 的参数是毫秒,sleep() 的参数是秒,单位也不一样。

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

  1. 编译型语言和解释型语言(转载)

    在具体计算机上实现一种语言,首先要确定的是表示该语言语义解释的虚拟计算机,一个关键的问题是程序执行时的基本表示是实际计算机上的机器语言还是虚拟机的机器语言.这个问题决定了语言的实现.根据这个问题的回答 ...

  2. 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别

    编译型语言和解释型语言 1.编译型语言 需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言.一般需经过编译(compile).链接(linker)这两个步骤.编译是把源代码编译成 ...

  3. 辨异 —— 不同的编程语言(编译型语言、解释型语言、动态语言、静态语言)...

    Java 越来越强大,覆盖领域也越来越多,变得无所不能的时候,和那些仅专注于一个领域的的编程语言相比,它反而显得不够专业: 1. 算符优先级 优先级意味着结合律: C/C++:位运算符(&|^ ...

  4. java属于编译_《程序员修炼之道》-读书笔记一-Java到底属于编译型语言还是解释型语言?...

    Java到底属于编译型语言还是解释型语言? 要想知道Java属于编译型语言还是解释型语言我们需要知道他们的定义和区别 定义: 编译型语言:把做好的源程序全部编译成二进制代码的可运行程序.然后,可直接运 ...

  5. 编译型语言和解释型语言的区别总结

    编译型语言和解释型语言的区别 编写的源代码是人类语言,我们自己能够轻松理解:但是对于计算机硬件(CPU),源代码就是天书,根本无法执行,计算机只能识别某些特定的二进制指令,在程序真正运行之前必须将源代 ...

  6. python编译型语言和解释型语言

    ** python编译型语言和解释型语言 ** 1.大部分语言为编译型或解释型,如C/C++等为编译型,python为解释型语言: 2.编译型语言比解释型语言执行速度快: 3.编译型语言:由程序员在开 ...

  7. 认识Python(python起源、设计、特点及编译型语言、解释型语言)

    学习目标: python的起源 为什么要用python python的特点 python的优缺点 1.python的起源 python的创始人为吉多.范罗苏姆 1989年圣诞节期间,吉多.范罗苏姆为了 ...

  8. 1. Java是编译型语言还是解释型语言?

    一.理解什么是编译型语言和解释型语言 首先,计算机是不能理解高级语言的.更不能直接执行高级语言,它只能理解和执行机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也 ...

  9. 概念区别 【编译型语言与解释型语言、动态类型语言与静态类型语言、强类型语言与弱类型语言】

    概念区别 [编译型语言与解释型语言.动态类型语言与静态类型语言.强类型语言与弱类型语言] 文章目录 一.编译型语言与解释型语言 二.动态类型语言与静态类型语言 三.强类型语言与弱类型语言 总结 一.编 ...

  10. java是编译型语言还是解释型语言?

    基本概念 什么是编译型语言?编译型语言的首先将源代码编译生成机器语言,再由机器运行机器码(二进制),比如C和C++. 编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件, ...

最新文章

  1. 听说92.8%的人答不对这道Python题,我不信,后来我信了!真有趣
  2. JQuery元素操小结
  3. C++_类和对象_C++运算符重载_左移运算符重载_链式编程_实现直接打印对象---C++语言工作笔记056
  4. java 将数据库中的每一条数据取出放入数组或者List中
  5. 2017 年十大网页设计趋势
  6. 安装和启动tftp-server服务器及可能出现Redirecting to /bin/systemctl restart xinetd.service问题的解决方式...
  7. python 微信投票脚本_Python自动化刷投票脚本开发,微信投票再也不需要发红包了...
  8. 我在迷你控制台风行一时
  9. 南阳oj入门题-蛇形填数
  10. 理解java接口和抽象类
  11. ArrayBuffer DataView
  12. linux使用过程中出现的问题
  13. 年份的读法与读数字不同
  14. python中datetime模块是以什么时间为基础_Python基础之datetime模块
  15. 威纶通触摸屏报错问题汇总
  16. STP生成树协议实验
  17. msk 频偏_快速估算msk信号载波的方法
  18. 查找有向图中两个顶点之间是否存在路径
  19. 为什么Hive中的group by后面不能使用字段别名?
  20. 【win10 找不到应用商店】

热门文章

  1. 让Typora单词拼写不冒红线
  2. C++中main函数的参数
  3. BZOJ1567 [JSOI2008]Blue Mary的战役地图(二分+二维hash)
  4. Revit二次开发——字体的问题
  5. 小米iot业务_小米集团组织变革:新设三大部门推进“手机X AIOT”战略落地
  6. 集美大学 - 2840 - 实验8 - 编程题
  7. 波尔图大学计算机专业,2018US News葡萄牙大学学科排名
  8. 如何依据激励对象和公司状况,选择正确的股权激励方式?
  9. SolidWorks草图练习题——第十一届M级
  10. OpenMV使用技巧