`
风火山林
  • 浏览: 140170 次
  • 性别: Icon_minigender_1
  • 来自: 汕尾
最近访客 更多访客>>
社区版块
存档分类
最新评论

解释性语言和编译性语言的区别

阅读更多

计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。

翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。

编译性语言

编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。

解释性语言
  解释则不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性java语言,专门有一个解释器能够直接执行java程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。

脚本语言
  脚本语言是解释性语言。脚本语言一般都有相应的脚本引擎来解释执行。它们一般需要解释器才能运行。所以只要系统上有相应语言的解释程序就可以做到跨平台。脚本语言是一种解释性的语言,例如vbscript,javascript,installshield script等等,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在。
JAVA语言
  java语言是解释性语言。java很特殊,java程序也需要编译,但是没有直接编译称为机器语言,而是编译称为字节码,然后用解释方式执行字节码。Java既可以被编译,也可以被解释。通过编译器,可以把Java程序翻译成一种中间代码 - 称为字节码 - 可以被Java解释器解释的独立于平台的代码。通过解释器,每条Java字节指令被分析,然后在计算机上运行。只需编译一次,程序运行时解释执行。
  Java字节码使“写一次,到处运行”成为可能。可以在任何有Java编译器的平台上把Java程序编译成字节码。这个字节码可以运行在任何Java VM上。例如,同一个Java程序可以运行在WindowsNT、Solaris和Macintosh上。

编译器与解释器的区别

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

编译性语言 不如解释性语言跨平台性好?

        编译性语言例如c语言:用c语言开发了程序后,需要通过编译器把程序编译成机器语言(即计算机识别的二进制文件,因为不同的操作系统计算机识别的二进制文件是不同的),所以c语言程序进行移植后,要重新编译。(如windows编译成ext文件,linux编译成erp文件)。

        解释性语言,例如java语言,java程序首先通过编译器编译成class文件,如果在windows平台上运行,则通过windows平台上的java虚拟机(VM)进行解释。如果运行在linux平台上,则通过linux平台上的java虚拟机进行解释执行。所以说能跨平台,前提是平台上必须要有相匹配的java虚拟机。如果没有java虚拟机,则不能进行跨平台。

分享到:
评论

相关推荐

    编译性语言、解释性语言和脚本语言

    编译性语言、解释性语言和脚本语言 编译性语言、解释性语言和脚本语言

    Python 简介 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言.rar

    Python是一种解释性语言:没有编译这个环节 Python是交互式语言:可以在一个 Python 提示符 >>> 后直接执行代码 Python是面向对象语言:支持面向对象的风格或代码封装在对象的编程技术 Python 是初学者的语言:支持...

    编译原理及实践-c语言描述

    本书系统介绍了经典的编译理论和技术,同时也包含了面向对象语言等当前较新语言的编译技术。本书更可贵之处在于提供了较完整的适用于教学实践的样例语言,是一本理论和实践内容相结合的、不可多得的好书。本书以类c...

    Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言 Python 的设计具有很强的可读性,相比其他

    Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。 像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)...

    编译原理(第2版)课件

    张素琴老师编写的第二版,中英文课件全套 第1章 引论 ...15.2.3 语言编译论的面向对象论域分析 15.3面向对象编译程序的符号表构造 练习 附录A PL、0编译程序文本 A.1 Pascal版本 A.2 C版本 参考文献

    java学习全PPT

    它综合了解释性语言与编译语言的众多优点,使其执行效率较以往的程序设计语言有了大幅度的提高。 Java源程序经过编译器编译,会被转换成一种我们将它称之为“字节码(byte_codes)”的目标程序。“字节码”的最大...

    python属于解释型语言么

    通常的说法,编译代表着将一个高级语言转化为 CPU 能执行的机器码。当你编译 C 的时候,的确是做的这样的操作。编译的结果是一个二进制可执行文件,这时你的系统可直接运行这个程序。 与此相对的,解释的意思是这样...

    go语言中文教程及手册.pdf

    它是快速的、静态类型编译语言,但是感觉上是动态类型的,解释型语言。 《go语言中文教程及手册》包含了语言结构、基础语法、数据类型、语言变量、语言常量以及运算符等内容的介绍,可以让你快速进阶为go语言编程...

    python程序需要编译吗

    Python是编译型语言还是解释型语言?回答这个问题前,应该先弄清楚什么是编译型语言,什么是解释型语言。 所谓编译执行就是源代码经过编译器编译处理,生成目标机器码,就是机器能直接运行的二进制代码,下次运行时...

    Python语言教程简介.pdf

    Python是一种解释性语言,不需要编译过程,可以直接运行。这使得开发过程更加简单快捷,同时也方便了跨平台的开发和部署。 总而言之,Python语言简洁易读、功能强大、适用范围广泛,因此被广泛应用于各种领域的软件...

    Rose实验(Oberon-0实验三)

    编译原理实验三 一、讨论Oberon-0 语言的特点 1、保留字与关键字的概念区分 保留字只要是用在程序语言的层次架构用途上,比如说IF,THEN,ELSIF,用在程序 的循环、分支、判断条件、程序块等组织上,它是程序语言中...

    Python所有语法总结.txt

    Python语法知识总结。Python是由荷兰程序员吉多在1991年开发完成,是一门解释性语言,解释性语言相比编译性语言速度慢,但跨平台好。

    python属于解释语言吗

    python并非完全是解释性语言,它是有编译的,先把源码py文件编译成pyc或者pyo,然后由python的虚拟机执行,相对于py文件来说,编译成pyc和pyo本质上和py没有太大区别,只是对于这个模块的加载速度提高了,并没有...

    D语言简易教程

    D语言(Dlang)是由Digital Mars公司开发的编程语言,起因是为了改进C++。它与C二进制兼容(不完全),可编译为本地码,有GC...D 从那些语言(主要是 C++ )那里获得了灵感,并使用经验和现实世界中的实用性来驯服它。

    Python编程语言介绍.docx

    Python语言是一门解释性语言,它在运行代码时不需要编译先将代码转变为机器码,直接执行源代码就可以得到结果。这使得开发者能够更加容易地编写和测试代码。 Python的语法简单易懂,并且代码可读性好,其对缩进的...

    TCL脚本语言编程

    Tcl语言是一个解释性语言,所谓解释性是指不象其他高级语言需要通过编译和联结,它象其他shell语言一样,直接对每条语句顺次解释执行。 Tcl数据类型简单。对Tcl来说,它要处理的数据只有一种——字符串。Tcl将变量值...

    C++安装注意事项需要考虑三点,C++和Python语言相比的优势在哪里?.docx

    这使它比解释性语言如Python更快,但也意味着必须为每个平台编译代码。虽然C++提供了对硬件更大的控制权,但在C++中编写代码可能比其他语言更复杂。 C++有一个陡峭的学习曲线,开发人员需要熟练才能编写正确的代码。...

    第1章-Python语言概述.pdf

    程序设计语言的执行方式 n 编译型语言:将源代码一次性转换成目 标代码,执行编译过程的程序叫编译器。 如C/C++、Java语言等。 程序设计语言的执行方式 n 解释型语言:将源代码逐条转换成目标 代码同时逐条运行,...

    编译原理词法分析器和语法分析器的实现(C++).zip

    - 语言处理领域的研究者:此项目可以作为自然语言处理和编译技术的一个研究起点。 ### 额外建议: - 从一个简单的语言子集开始,逐步增加支持的语法和语义特性。 - 使用单元测试和集成测试来验证分析器的正确性。 - ...

    《大学计算机基础》程序设计-综合习题.doc

    程序设计 一、选择题 1. 有关算法的描述,下列【 】选项是不正确的。 A 算法有优劣之分 B 算法是为了实现某个任务采取的方法和步骤 C 实现某个任务的算法具有...30. 【 】是过程性语言。 A Java语言 B C++语言 C Fort

Global site tag (gtag.js) - Google Analytics