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

2021-02-02 11:17:24 字数 4339 阅读 3086

1楼:手机用户

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

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

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

如果没有java虚拟机,则不能进行跨平台。

解释性语言和编译型语言的区别与不同

2楼:育知同创教育

1.编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。

2.解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。

3.c/c++ 等都是编译型语言,而java,c#等都是解释型语言。

4.虽然java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言)。

在运行的时候,由jvm将字节码再翻译成机器语言。

5.脚本语言一般都有相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。

javascript,asp,php,perl,nuva都是脚本语言。c/c++编译、链接后,可形成独立执行的exe文件。

java语言是解释型还是编译型语言

3楼:尚学堂科技****

java语言是编译型语言

编译执行是一种计算机语言的执行方式。由编译程序将目标**一次性编译成目标程序,再由机器运行目标程序。效率高于解释执行。

4楼:育知同创教育

它既不属于传统的编译型语言也不属于解释型语言.

它是先编译成.class字节码文件,然后再利用虚拟机解释执行的.可以说先编译后解释吧.

5楼:肖修市鸿晖

于常见的解释执行语言不同,它既是编译型也是解释型:编译就是把源文件编译成.class文件,解释就是虚拟机通过解释.class文件完成对.class文件的执行。

关于“编译型语言”和“解释性语言”的区别

6楼:匿名用户

1、程序控制权不同:

对于解释性语言而言,程序运行时的控制权在解释器(jre,.***)而不再用于程序。编译型语言对于编译器而言,运行时的控制权在用户程序。

2、运行速度不同:

一些网页脚本,服务器脚本以及辅助开发接口这样的对速度要求不高,对不同系统的兼容性有一定要求的程序则通常使用解释性语言,如java、javascript、vbscript、perl、python、ruby、matlab等等。

编译语言由于程序执行速度快,同等条件下对系统的要求比较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像c/c++,pascal/object pascal(delphi)等都是编译型语言。

3、移植性不同:

解释型语言,例如java语言,java程序首先通过编译器编译成class文件,如果在windows平台上运行,则通过windows平台上的java虚拟机(vm)进行解释。如果运行在linux平台上,则通过linux平台上的java虚拟机进行解释执行。

所以说能跨平台,前提是平台上必须要有相匹配的java虚拟机。如果没有java虚拟机,则不能进行跨平台。

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

7楼:育知同创教育

解释性语言和编译型语言的区别与不同之处如下:

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

翻译的方式有两种:

一个是编译

一个是解释。

两种方式只是翻译的时间不同。

编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高,但也不能一概而论,部分解释型语言的解释器通过在运行时动态优化**,甚至能够使解释型语言的性能超过编译型语言。

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

8楼:匿名用户

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

计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。 翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。

编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高,但也不能一概而论,部分解释型语言的解释器通过在运行时动态优化**,甚至能够使解释型语言的性能超过编译型语言。 解释则不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。

解释是一句一句的翻译。 编译型与解释型,两者各有利弊。前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像c/c++、pascal/object pascal(delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如java、javascript、vbscript、perl、python、ruby、matlab 等等。

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

9楼:匿名用户

1.编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。

2.解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。

3.c/c++ 等都是编译型语言,而java,c#等都是解释型语言。

4.虽然java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言)。

在运行的时候,由jvm将字节码再翻译成机器语言。

5.脚本语言一般都有相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。

javascript,asp,php,perl,nuva都是脚本语言。c/c++编译、链接后,可形成独立执行的exe文件。

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

10楼:匿名用户

用编译型语bai言写的程序du执行之前,需zhi要一个专门的编译过程dao,通过回编译系统(不答仅仅只是通过编译器,编译器只是编译系统的一部分)把高级语言翻译成机器语言,把源高级程序编译成为机器语言文件,比如windows下的exe文件。以后就可以直接运行而不需要编译了,因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高,但也不能一概而论,部分解释型语言的解释器通过在运行时动态优化**,甚至能够使解释型语言的性能超过编译型语言。

解释则不同,解释型语言编写的程序不需要编译。解释型语言在运行的时候才翻译,比如vb语言,在执行的时候,专门有一个解释器能够将vb语言翻译成机器语言,每个语句都是执行的时候才翻译。这样解释型语言每执行一次就要翻译一次,效率比较低。

请用通俗的语言解释一下什么是服务器,有哪些类型

1楼 匿名用户 web服务 器就是提供 服务的服务器。 常见的服务器还有文件服务器 打印服务器 数据库服务器 游戏服务器等等。 一般来说提供什么服务就是什么服务器,多种服务可以在一台服务器上。 如 一台服务器上有web和数据库服务,那这台服务器就同时是web和数据库服务器。 2楼 匿名用户 服务器 ...

c语言,这题怎么写啊,求解释,c语言,这题怎么写,求解释

1楼 匿名用户 定义和输入语句没有传上来。不过从选项上看,应该是int b1 b2 char d1 d2 scanf d c d c b1 d1 b2 d2 在 d的时候,前导空格会被忽略 但是 c不会忽略空格,而是直接读取 于是 输入1a2b是可以的,同时 1和2之前可以有空格,a和b之前不能有空...

c语言的问题跪求大神解释,C语言的一个问题 跪求大神解释

1楼 八进制转义字符 它是由反斜杠 和随后的1 3个八进制数字构成的字符序列。例如, 60 101 141 分别表示字符 0 a 和 a 。因为字符 0 a 和 a 的ascii码的八进制值分别为60 101和141。 字符集中的所有字符都可以用八进制转义字符表示。 如果你愿意,可以在八进制数字前面...