编译型语言、解释型语言、静态类型语言、动态类型语言

 小结:java

一、一个是编译,一个是解释。两种方式只是翻译的时间不一样:linux

计算机不能直接理解高级语言,只能直接理解机器语言,因此必需要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。数据库

二、编译性语言不如解释性语言跨平台性好:编程

用编译性语言c语言开发了程序后,须要经过编译器把程序编译成机器语言(即计算机识别的二进制文件,由于不一样的操做系统计算机识别的二进制文件是不一样的),因此c语言程序进行移植后,要从新编译。windows

三、java跨平台的实现:浏览器

解释性语言,例如java语言,java程序首先经过编译器编译成class文件,若是在windows平台上运行,则经过windows平台上的java虚拟机(VM)进行解释。若是运行在linux平台上,则经过linux平台上的java虚拟机进行解释执行。因此说能跨平台,前提是平台上必需要有相匹配的java虚拟机。若是没有java虚拟机,则不能进行跨平台。 [2]服务器

 

 

https://baike.baidu.com/item/编译型语言编程语言

https://baike.baidu.com/item/解释型语言性能

 

运行编译型语言是相对于解释型语言存在的,编译型语言的首先将源代码编译生成机器语言,再由机器运行机器码二进制)。像C/C++等都是编译型语言优化

编译型语言:程序在执行以前须要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不须要从新翻译,直接使用编译的结果就好了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等.  [1] 
而相对的,解释性语言编写的程序不进行预先编译,以文本方式存储程序代码。在发布程序时,看起来省了道编译工序。可是,在运行程序的时候,解释性语言必须先解释再运行。  [2] 
 
中文名
编译型语言
编译型语言
相对于解释型语言存在的
做    用
首先将源代码编译生成机器语言
例    如
C/C++等

编写编译程序

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

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

解释性语言在运行 程序的时候才翻译,好比解释性basic语言,专门有一个 解释器可以直接执行basic程序,每一个语句都是执行的时候才翻译。这样 解释性语言每执行一次就要翻译一次,效率比较低。

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

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

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

编译性语言例如c语言:用c语言开发了程序后,须要经过编译器把程序编译成机器语言(即计算机识别的二进制文件,由于不一样的操做系统计算机识别的二进制文件是不一样的),因此c语言程序进行移植后,要从新编译。(如windows编译成ext文件,linux编译成erp文件)。  [3] 
解释性语言,例如java语言,java程序首先经过编译器编译成class文件,若是在windows平台上运行,则经过windows平台上的java虚拟机(VM)进行解释。若是运行在linux平台上,则经过linux平台上的java虚拟机进行解释执行。因此说能跨平台,前提是平台上必需要有相匹配的java虚拟机。若是没有java虚拟机,则不能进行跨平台。  [3] 

解释型语言

解释性语言编写的程序不进行预先编译,以文本方式存储程序代码。在发布程序时,看起来省了道编译工序。可是,在运行程序的时候,解释性语言必须先解释再运行。好比解释性 Basic语言,其专用的 解释器在执行Basic程序时,会逐条读取解释每一个语句,这个其实就是一个编译过程,而后再执行。通常来讲,现有的解释性语言都是采用的逐行解释一句,执行一句这样的方式来构建的。这样解释性语言每执行一次就要翻译一次,效率比较低。  [2] 
 
 
相对于编译型语言存在的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。好比Python/JavaScript / Perl /Shell等都是解释型语言。
解释型语言:程序不须要 编译,程序在运行时才翻译成 机器语言,每执 行一次都要翻译一次。所以效率比较低。好比Basic语言,专门有一个解释器可以直接执行Basic程 序,每一个语句都是执行的时候才翻译。(在运行程序的时候才翻译,专门有一个解释器去进行翻译,每一个语句都是执行的时候才翻译。效率比较低,依赖解释器,跨 平台性好.)  [1] 
 
中文名
解释型语言
运    行
先翻译成中间代码,由 解释器运行
相    对
编译型语言
特    点
源代码不是直接翻译成机器语言
例    子
Python,JavaScript,Perl,Shell

两种方式

计算机不能直接理解高级语言,只能直接理解 机器语言,因此必需要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。
一个是编译,一个是解释。两种方式只是翻译的时间不一样。 编译型语言写的程序执行以前,须要一个专门的编译过程,把 程序编译成为机器语言的文件,好比exe文件,之后要运行的话就不用从新翻译了,直接使用编译的结果就好了(exe文件),由于翻译只作了一次,运行时不须要翻译,因此编译型语言的程序执行效率高,但也不能一律而论,部分解释型语言的 解释器经过在运行时动态优化代码,甚至可以使解释型语言的性能超过编译型语言。
解释则不一样, 解释性语言的程序不须要编译,省了道工序,解释性语言在运行程序的时候才翻译,好比解释性basic语言,专门有一个解释器可以直接执行basic程序,每一个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。解释是一句一句的翻译。

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

前者因为程序执行速度快,同等条件下对系统要求较低,所以像开发操做系统、大型应用程序、 数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些 网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不一样系统平台间的兼容性有必定要求的程序则一般使用 解释性语言,如JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。
但随着硬件的升级和 设计思想的变革,编译型和解释型语言愈来愈笼统,主要体如今一些新兴的高级语言上,而解释型语言的自身特色也使得 编译器厂商愿意花费更多成原本优化 解释器,解释型语言性能超过 编译型语言也是必然的。

编译型语言

编译型语言:程序在执行以前须要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不须要从新翻译,直接使用 编译的结果就好了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等.  [1] 

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

解释性语言在运行程序的时候才翻译,好比解释性basic语言,专门有一个 解释器可以直接执行basic程序,每一个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。  [2] 

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

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

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

编译性语言例如c语言:用c语言开发了程序后,须要经过编译器把程序编译成机器语言(即计算机识别的二进制文件,由于不一样的操做系统计算机识别的二进制文件是不一样的),因此c语言程序进行移植后,要从新编译。(如windows编译成ext文件,linux编译成erp文件)。  [2] 
解释性语言,例如java语言,java程序首先经过编译器编译成class文件,若是在windows平台上运行,则经过windows平台上的java虚拟机(VM)进行解释。若是运行在linux平台上,则经过linux平台上的java虚拟机进行解释执行。因此说能跨平台,前提是平台上必需要有相匹配的java虚拟机。若是没有java虚拟机,则不能进行跨平台。  [2] 
 

 

《代码的将来》

静态:不实际运行程序,仅经过程序代码的字母来肯定结果;

动态:只有运行时才肯定结果;

Java、GO偏静态;Ruby、JavaScript偏动态。

 诞生于1995年Java,伴随嵌入在浏览器的Applet技术而出现的。

 不管任何程序,或多或少都包含了动态的特性。若是一个程序彻底是静态的话,那就意味着只须要对代码进行字面的上的分析,

就能够获得全部的结果,这样一来程序的运行就没有任何意义了。

做为一个程序的实现者,编程语言也多多少少都具有动态的性质;所谓动态仍是静态,指的是这种语言对于动态的功能进行了多少

限制,或者反过来讲,对动态功能进行了多少积极的强化。咱们所探讨的实际上是语言的这种设计方针。

相关文章
相关标签/搜索