1 编译型语言和解释型语言的含义

大家都知道,代码语言级别主要有机器语言、汇编语言、和高级语言。而高级语言主要又分为编译型语言和解释型语言,下面我们主要讨论这两种语言的含义。

编译型语言指使用专门的编译器,针对特定的平台(操作系统)将高级语言源码一次性“翻译”成可被该平台执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行性程序的格式。需要注意的两点分别是:编译是在运行这个程序内容以前,一次性的编译成这个平台可执行的程序文件;编译生成可执行程序是已经和编译器没有任何关系了,可以在特定的平台上独立运行。

 解释型语言指使用专门的解释器对源程序逐行解释成特定平台上的机器码并立即执行的语言,解释性语言通常不会进行整体性的编译和链接处理。需要注意的是,解释型语言是在运行程序过程中进行逐条解释,因此解释性语言每次运行都要进行编译,效率比较低,不能独立于平台独立运行。

2 编译型语言和解释性语言的优缺点

编译型语言因为一次编译,便可独立于平台运行,因此编译型语言最大的优点就是运行效率高,节省内存。因为其对平台依赖性较强,因此缺点不适合写跨平台的web开发。

解释型语言相反因为每次运行都要运行,所以缺点是占用内存较大,运行效率较低。优点便于跨平台开发程序。

总之,他们核心区别就是对平台的依赖性和自身的运行效率,其他有缺点都是基于这两点上的不同。

3 跨平台性

对于解释型语言跨平台而编译型语言不能跨平台,本人查过很多解释,网上基本在讲什么编译器需依靠平台,而解释型语言依靠不同平台的解释器就可以实现跨平台,我就是想如果在不同平台上装对应的编译器,不也可以实现跨平台吗。最终,经过对老师的询问和进一步查资料才有了进一步的理解。

首先,其实说编译型语言不能跨平台其实不准确或者就是错误理解。其实编译型语言比如c语言也是跨平台语言,理论上,在不同平台装上对应的编译器就可以实现跨平台。但是编译型语言虽然是高级语言,却与平台联系比较紧密(操作系统都是用编译型语言编写的),因此针对不同平台(操作系统)可能有其特定的编写规则,放到其他平台上面,自然编译执行不了。比如,在Windows用c写了调用Windows的API(只在windows系统使用)的程序,在Linux系统的编译器上编译自然会出错。如果能避免这些特殊的使用,编译型语言就可以跨平台了。而对于解释型语言就不存在这个问题,解释型语言先天就和平台联系很少,所以,用解释型语言写出来的一份同样的程序,只要通过不同的解释器解释,就可以在对应不同的平台上使用。

补充:

常见的编译型语言有:C、C++、FORTRAN、Pascal

常见的解释型语言有:Ruby、Python

而Java既不是纯粹的解释型语言,也不是纯粹的编译型语言,因为它先编译形成与平台无关的字节码,再使用java解释器(JVMjava虚拟机)来解释执行。

本人现在正在努力学习JAVA语言中,以后会经常出一些学习博客,欢迎大家一起学习讨论,相互进步。

什么是编译型语言和解释型语言和他们的优缺点及为什么解释型语言可以跨平台而编译型语言不行相关推荐

  1. 解释型语言与编译型语言的区别

    编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了. 解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢. ...

  2. Java编译型语言还是解释型语言

    转自:http://blog.csdn.net/xxb2008/article/details/7924676 JAVA是解释型语言还是编译型语言 Under J2SE | 三月 10th, 2010 ...

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

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

  4. java半解释半编译_编译型语言、解释型语言、半编译半解释型语言

    计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序.将其他语言翻译成机器语言的工具,被称为编译器. 编译器翻译的方式有两种:一种是编译,一种 ...

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

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

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

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

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

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

  8. 编译型语言与解释型语言的区别及各自的优缺点

    编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言就不用再进行翻译了. 解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编C/C++ 等都是编译型语言,而Java, ...

  9. 解释型语言与编译型语言的异同

    解释型语言和编译型语言,这两个概念在我本科结束后发现如果让我自己清晰的解释,好像我并不能,最近看到一篇比较好的介绍,如下: 1.何谓解释?何谓编译? 这一切要从学习C语言的时候开始.C语言在执行前一定 ...

最新文章

  1. 阿里员工离职潮的背后?
  2. 监控摄像头使用率不足六成 还需提高维护力
  3. List、Set、Map的区别
  4. slowquery 慢查询
  5. RabbitMQ指南(下)
  6. Kubernetes 与 OpenYurt 无缝转换(命令式)
  7. 哑编码官方代码自己的注解
  8. 数据库 sqlite 进阶
  9. 和一个刚毕业不久的朋友聊天
  10. python全局名称空间_python名称空间,命名空间
  11. 6-1 另类堆栈 (8 分)
  12. VSCode 设置 Tab 空格
  13. oracle中直方图的使用
  14. Unity2019.2中文更新日志速览版
  15. FPGA学习笔记---3种乘法器的比较
  16. 今日宜发布融资消息:明略、智行者、Video++分获BAT投资
  17. pytorch 与numpy 部分操作的对应关系
  18. 补装老版本的Java SE
  19. div+css 定位浅析
  20. matlab imagesc 平滑,在matlab中,如何使用imagesc在2D热图中“平滑”像素

热门文章

  1. 泛在电力物联网形势下考虑多主体投资的配电网运行优化策略
  2. orb slam3之BA部分源码解读
  3. android asserts文件读出到 /data/data/pkg/目录下
  4. npm运行报错:token < in JSON at position 1 while parsing near
  5. 小改进大奖励,大建议只鼓励
  6. 007Pythom学习
  7. 抖音播放量很低,怎么办???
  8. 51单片机 智能婴儿监护系统
  9. Hive SQL 求环比同比数据
  10. 负数在二进制中如何表示