首先什么是编译型语言和解释型语言?

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

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

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

什么是编译型语言和解释型语言?相关推荐

  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. laravel 163发送邮件
  2. 113. Leetcode 674. 最长连续递增序列 (动态规划-子序列问题)
  3. C语言 socket listen()函数(socket()函数创建的socket(套接字描述符)默认是一个主动类型的,listen函数将socket变为被动类型的,等待客户的连接请求)
  4. iOS 开发中需要注意的小地方
  5. VTK:PolyData之ShrinkPolyData
  6. Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'的解决
  7. ios上编译c语言的app,iOS App编译流程
  8. 12306 抢票项目霸榜 GitHub,标星即将破万
  9. java jframe 对话框_java-如何将值从JDialog框返回到父JFrame?
  10. python绘图总结2
  11. python解释器哪个版本好_python解释器有几种
  12. 使用keras和tensorflow进行minst数据集图像分类
  13. 联想笔记本电脑键盘灯怎么开启_解决方案:如何打开Lenovo键盘灯?联想笔记本键盘键盘灯按哪个键?...
  14. 55岁的大妈被儿媳嫌弃,二次创业,靠洗地毯一年就开了一家公司!
  15. mysql返回指定时间格式_【MySQL】查询日期返回指定格式
  16. 数据处理--图片像素点聚类
  17. SpringBoot操作ES进行各种高级查询(值得收藏)
  18. 《明解C语言入门篇》 基础知识点汇总
  19. 华为是否关闭私有云,这个问题真的那么重要么?
  20. CityEngine2019 学习笔记 (1)一 基本操作

热门文章

  1. MySQL中有哪些完整性约束_sql完整性约束有哪些
  2. java 网络 xml_java|安卓解析网络中xml的内容
  3. 企业发放的奖金根据利润提成,规则如下。请根据当月利润求取发放奖金总数。
  4. Java并发 - 初识自旋锁
  5. USB mass storage驱动分析
  6. 专业论文翻译,英文摘要如何写比较好
  7. 算法男自述:很有料很枯燥,机器学习在营销中的应用
  8. 【求投票】博客之星投票
  9. flask解决WARNING: This is a development server. Do not use it in a production deployment.
  10. php id如何设置主键自增,phpmyadmin设置id主键自增报错怎么办_数据库