外贸建站教程,设计手机网站,朋友圈信息流广告投放价格,网店推广的方法解释型语言和编译型语言的区别 首先#xff0c;我们编程都是用的高级语言(写汇编和机器语言的大牛们除外)#xff0c;计算机不能直接理解高级语言#xff0c;只能理解和运行机器语言#xff0c;所以必须要把高级语言翻译成机器语言#xff0c;计算机才能运行高级语言所编写… 解释型语言和编译型语言的区别 首先我们编程都是用的高级语言(写汇编和机器语言的大牛们除外)计算机不能直接理解高级语言只能理解和运行机器语言所以必须要把高级语言翻译成机器语言计算机才能运行高级语言所编写的程序。说到翻译其实翻译的方式有两种一个是编译一个是解释。两种方式只是翻译的时间不同。用编译型语言写的程序执行之前需要一个专门的编译过程通过编译系统不仅仅只是通过编译器编译器只是编译系统的一部分把高级语言翻译成机器语言具体翻译过程可以参看下图把源高级程序编译成为机器语言文件比如windows下的exe文件。以后就可以直接运行而不需要编译了因为翻译只做了一次运行时不需要翻译所以编译型语言的程序执行效率高但也不能一概而论部分解释型语言的解释器通过在运行时动态优化代码甚至能够使解释型语言的性能超过编译型语言。一个完整的编译系统与 一个用C编写的程序hello.c的编译过程 解释则不同解释型语言编写的程序不需要编译。解释型语言在运行的时候才翻译比如VB语言在执行的时候专门有一个解释器能够将VB语言翻译成机器语言每个语句都是执行的时候才翻译。这样解释型语言每执行一次就要翻译一次效率比较低。 编译型与解释型两者各有利弊。前者由于程序执行速度快同等条件下对系统要求较低因此像开发操作系统、大型应用程序、数据库系统等时都采用它像C/C、Pascal/Object PascalDelphi等都是编译语言而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言如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等语言都是脚本语言本质上来说脚本语言就是解释型语言。对于以上内容如果有什么地方说的不妥的敬请指出