编译型语言与解释型语言
编译型语言:
- 编译型语言是指高级语言编写成的源代码,在某操作系统等平台的相应
编译器
上进行一次性
编译后,生成该平台能直接识别的机器语言代码。编译后代码能脱离开发环境,在同种平台
上运行,无需再次编译。
运行程序执行速度主要取决于源程序代码。 - 代表性语言:C 、C++、Objective-C、Pascal 等
- 优点:
一次性编译,脱离开发环境运行,执行效率高
缺点:
针对特定平台编译后的代码,难以在其他平台正常运行。如kali linux下编译好的C文件不能在Ubuntu 上运行;64位Ubuntu编译好的代码,不能在32位Ubuntu上运行。
解释型语言:
- 解释性语言是指某一平台通过相应的
解释器
将源程序逐行
解释成平台可识别的机器语言代码并立马执行,即边解释源代码边执行机器码
。
运行程序执行速度主要取决于解释器及源程序代码。 - 代表性语言:HTML、XML、Javascript、python等
- 优点:
跨平台性好,源代码可以在不同平台上通过解释器,解释执行
缺点:
每次运行,都需要将源代码进行逐行解释执行,执行效率低。
java语言利用了两者的优点,将java源代码.java文件,一次性编译成.class文件,在不同平台上使用不同的java虚拟机(JVM)解释运行,实现跨平台,可移植性好,运行速度也快。
更详细请见本文参考资料:
https://www.jianshu.com/p/54e2aeca013b
http://c.biancheng.net/view/4136.html
(注:本人菜鸡,个人见解,如有错误,欢迎评论指出)