编译性语言、解释性语言和脚本语言的区别

1、翻译和解释的不一样 javascript

翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不一样。编译型语言写的程序在被执行以前,须要一个专门的编译过程,把程序编译成为机器语言的文件,好比exe文件,之后要运行的话 就不用从新翻译了,直接使用编译的结果就好了(exe文件),由于翻译只作了一次,运行时不须要翻译,因此编译型语言的程序执行效率高。解释则不一样,解释性语言的程序不须要编译,省了道工序,解释性语言在运行程序的时候才翻译,好比解释性basic语言,专门有一个解释器可以直接执行basic程序,每一个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。 java

2、脚本语言 c++

 ①脚本语言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间 数据库

    HTML一般用于格式化和链结文本。而编程语言一般用于向机器发出一系列复杂的指令。 编程

 ②脚本语言与编程语言也有不少类似地方,其函数与编程语言比较相象一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些。


 ③与程序代码的关系:脚本也是一种语言,其一样由程序代码组成. 服务器

注:脚本语言通常都有相应的脚本引擎来解释执行。 他们通常须要解释器才能运行。JAVASCRIPT,ASP,PHP,PERL都是脚本语言。C/C++编译、连接后,可造成独立执行的exe文件。 编程语言

④脚本语言是一种解释性的语言 函数

    例如vbscript,javascript,installshield script等等,它不象c/c++等能够编译成二进制代码,以可执行文件的形式存在。脚本语言不须要编译,能够直接用,由解释器来负责解释,不过每次都须要翻译,执行速度慢。 工具

⑤脚本语言通常都是以文本形式存在,相似于一种命令

    举个例子说,若是你创建了一个程序,叫aaa.exe,能够打开.js为扩展名的文件。 性能

    你为.js文件的编写指定了一套规则(语法),当别人编写了.js文件后,你的程序用这种规则来理解编写人的意图,并做出回应.那么,这一套规则就是脚本语言。

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

但随着硬件的升级和设计思想的变革,编译型和解释型语言愈来愈笼统,主要体如今一些新兴的高级语言上,而解释型语言的自身特色也使得编译器厂商愿意花费更多成原本优化解释器,解释型语言性能超过编译型语言也是必然的。

说到这里,咱们有必要说一下java与C#。解释型语言和编译型语言的区别

      JAVA语言是一种编译型-解释型语言,同时具有编译特性和解释特性(其实,确切的说java就是解释型语言,其所谓的编译过程只是将.java文件编程成平台无关的字节码.class文件,并非向C同样编译成可执行的机器语言,在此请读者注意Java中所谓的“编译”和传统的“编译”的区别)。 做为编译型语言,JAVA程序要被统一编译成字节码文件——文件后缀是class。此种文件在java中又称为类文件。java类文件不能再计算机上直接 执行,它须要被java虚拟机翻译成本地的机器码后才能执行,而java虚拟机的翻译过程则是解释性的。java字节码文件首先被加载到计算机内存中,然 后读出一条指令,翻译一条指令,执行一条指令,该过程被称为java语言的解释执行,是由java虚拟机完成的。而在现实中,java开发工具JDK提供 了两个很重要的命令来完成上面的编译和解释(翻译)过程。两个命令分别是javac.exe和java.exe,前者加载java类文件,并逐步对字节码 文件进行编译,而另外一个命令则对应了java语言的解释(javac.exe)过程。在次序上,java语言是要先进行编译的过程,接着解释执行。
C#语言是编译型语言,但其“编译”过程比较特殊,具体说明以下:
   C#程序在第一次运行的时候,会依赖其.NET Frameworker平 台,编译成IL中间码),而后由JIT compiler翻译成本地的机器码执行。从第二次在运行相同的程序,则不须要再执行以上编译和翻译过程,而是直接运行第一次翻译成的机器码。因此对于 C#来讲,一般第一次运行时间会很长,但从第二次开始,程序的执行时间会快不少。
那么,C#为何要进行两次“编译”呢?其实,微软想经过动态编译(由JIT compiler工具实现)来实现其程序运行的最优化。若是代码在运行前进行动态编译运行,那么JIT compiler能够很智能的根据你本地机器的硬件条件来进行优化,好比使用更好的register,机器指令等等,而不是像原来那样,build一份程序针对全部硬件的机器跑,没有充分利用各个机器的条件。
   另外,还有咱们常常用到的脚本语言,好比JavaScript、Shell等语言都是脚本语言,本质上来讲,脚本语言就是解释型语言。
相关文章
相关标签/搜索