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

计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。

计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。而这种转换的方式有两种:

1.编译

2.解释

由此高级语言也分为编译型语言和解释型语言。

主要区别在于,前者源程序编译后即可在该平台运行,后者是在运行期间才编译。所以前者运行速度快,后者跨平台性好。

编译型语言

使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。

特点

在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件,如exe格式的文件,以后要再运行时,直接使用编译结果即可,如直接运行exe文件。因为只需编译一次,以后运行时不需要编译,所以编译型语言执行效率高。

总结

1.一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高;

2.与特定平台相关,一般无法移植到其他平台;

3.现有的C、C++、Objective等都属于编译型语言。

解释型语言

使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。是代码在执行时才被解释器一行行动态翻译和执行,而不是在执行之前就完成翻译。

特点

解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。

总结

1.解释型语言每次运行都需要将源代码解释称机器码并执行,效率较低;

2.只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植;

3.Python等属于解释型语言。

编译型与解释型,两者各有利弊

前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。

关于java

Java和其他的语言不太一样。因为java针对不同的平台有不同的JVM,实现了跨平台。所以Java语言有一次编译到处运行的说法。

1.你可以说它是编译型的:因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。

2.你可以说它是解释型的:因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。

3.但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。

个人认为,java是解释型的语言,因为虽然java也需要编译,编译成.class文件,但是并不是机器可以识别的语言,而是字节码,最终还是需要 jvm的解释,才能在各个平台执行,这同时也是java跨平台的原因。所以可是说java即是编译型的,也是解释型,但是假如非要归类的话,从概念上的定义,恐怕java应该归到解释型的语言中。

编译型的语言包括:C、C++、Delphi、Pascal、Fortran

解释型的语言包括:Java、Basic、javascript、python

python编译型语言和解释型语言的区别_编译型语言和解释型语言的区别?相关推荐

  1. python 实例方法和类方法的区别_实例方法和类方法的区别 python

    展开全部 有区别的,最主要的区别在于,定32313133353236313431303231363533e58685e5aeb931333363363433义类方法主要是要加一个装饰器,@classm ...

  2. 华为p10和p10plus区别_华为p10和p10plus区别,华为p10和p10 plus有什么区别?

    华为p10和p10 plus有什么区别?华为p10和p10plus区别对比怎样?华为在上海举办旗舰新品发布会盛典,正式在中国市场推出华为P10和P10 Plus两款新品.那么华为P10和华为P10Pl ...

  3. python解释型语言的区别_什么是解释型语言?

    你女网友只懂中文(源代码),你只懂英文(机器码/CPU指令),现在你俩要搞对象,怎么办?我假设你已经看过一些搜索文章了,但还是觉得不直观,所以能搜到的我就不写了. 女网友写下了自己的: 要求.py: ...

  4. python生成器和迭代器区别_生成器、迭代器的区别?

    迭代器是一个更抽象的概念,任何对象,如果它的类有 next 方法和 iter 方法返回自己本身,对于 string.list. dict.tuple 等这类容器对象,使用 for 循环遍历是很方便的. ...

  5. python递归和循环的区别_递归与伪递归区别,Python 实现递归与尾递归

    递归函数在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函 数.(1) 递归就是在过程或函数里调用自身.(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出 ...

  6. python中文本文件和二进制文件的区别_文本文件和二进制文件的区别

    定义 广义的二进制文件即指文件,由文件在外部设备的存放形式为二进制而得名.狭义的二进制文件即除文本文件以外的文件.文本文件是一种由很多行字符构成的计算机文件.文本文件存在于计算机系统中,通常在文本文件 ...

  7. python前端和后端的区别_前端和后端的区别

    有的人认为,前端很好学,后端不好学. 也有的人认为,前端不好学,后端好学,归根到底还得看个人兴趣. 前端和后端做简单的叙述 后端:入门难,深入更难,枯燥乏味,没有太大成就感,看一堆业务逻辑代码. 前端 ...

  8. python回车和换行的区别_回车与换行的区别 - bithup的个人空间 - OSCHINA - 中文开源技术交流社区...

    区别: \r: 全称:carriage return (carriage是"字车"的意思,打印机上的一个部件) 简称:return 缩写:r ASCII码:13 作用:把光标移动到 ...

  9. python数组和链表的区别_数组和链表的区别 - toddler的个人空间 - OSCHINA - 中文开源技术交流社区...

    数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素.但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中.同 ...

  10. python回车和换行的区别_回车与换行的区别(转)

    add by zhj: 不同操作系统下换行符不同,如下: \n: UNIX \n\r: window \r: MAC OS 我们经常遇到的一个问题就是,Unix/Mac系统下的文件在Windows里打 ...

最新文章

  1. 对于任天堂你了解多少?
  2. oracle导入dmp报无效的sql,oracle施用pl/sql导入数据库备份文件dmp导入失败原因
  3. nginx处理web请求分析
  4. 【Java核心面试宝典(1),程序员Javaweb源码
  5. mac 10.9.5 安装hadoop 1.2.1 运行wordcount
  6. Node --- Basic认证
  7. 中的数组怎么转成结构体_PLC知识,什么是数组和结构体?
  8. magento 获取类别和子类别 Display Categories and SubCategories in Magento
  9. Mono for Unreal Engine发布,C#进入虚幻引擎(Unreal Engine)
  10. Coding Interview Guide -- 翻转字符串
  11. [NOI2006] 神奇口袋
  12. Java关于md5+salt盐加密验证
  13. 计算机专业应届生简历英语作文,计算机专业毕业生英文简历范文
  14. OpenJudge 海贼王之伟大航路
  15. ListView动态刷新
  16. 仿微同商城后台API
  17. 抢注数字域名 数字含义解释
  18. java中文拼音转换(maven)
  19. 解决:无法访问此网站网址为 https://weread.qq.com/ 的网页可能暂时无法连接,或者它已永久性地移动到了新网址。 ERR_INSUFFICIENT_RESOURCES
  20. Lawliet|Python学习笔记2——控制结构异常处理

热门文章

  1. 利用HtmlAgilityPack库进行HTML数据抓取
  2. 讨厌的迅雷占用80口
  3. Android中使用ShareSDK功能学习
  4. uniapp开发原生android插件,uni-app原生插件(native plugin)开发指南
  5. linux监控系统软件下载,Linux系统资源监控工具(LinuxSysMonitor)
  6. python全局变量定义_python全局变量和局部变量的概念
  7. SQLserver C#将图片以二进制方式存储到数据库,再从数据库读出图片
  8. PHP接口报错:Malformed UTF-8 characters, possibly incorrectly encoded
  9. 一个员工经常找别人聊天,吾就知道他要走人了
  10. ADB Interface显示黄色惊叹号怎么办?