解释型语言与编译型语言有什么不同

因为一段话而引发的血案:“解释语言的工作被限制在内存里,而编译行语言不会限制。也就是说在系统支持的情况下编译行语言是无所不能的”。所以才去查了资料。

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


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

C/C++ 等都是编译型语言,而Java,C#等都是解释型语言。

虽然Java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言)。
在运行的时候,由JVM将字节码再翻译成机器语言。
注:脚本语言一般都有相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。JAVAS CRIPT,ASP,PHP,PERL,Nuva都是脚本语言。C/C++编译、链接后,可形成独立执行的exe文件。

4.脚本语言是一种解释性的语言,例如vbscript,javas cript,installshield script,ActionScript等等,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在.

脚本语言不需要编译,可以直接用,由解释器来负责解释。 

5.脚本语言一般都是以文本形式存在,类似于一种命令. 

举个例子说,如果你建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件. 

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

----------------------华丽丽的分割线------------------------

总之,简而言之呢,借鉴下知乎上比较形象生动但貌似不太合理的一个比喻:编译就相当于做好一桌子菜再开吃;而解释呢就像涮火锅一样,边涮边吃,所以速度会慢。

再引用知乎上的一段回答:

所说的编译型语言和解释型语言的本质都是解释执行的,虽然没有什么错误,但是感觉有些像是诡辩。编译型和解释型的语言之所以可以说相同,是因为这些语言从文本形式的代码到最终产生的动作,所经历的过程是一样的。

一种高级编程语言,从源代码开始,一直到被执行生成相应的动作,大约经历了这几个步骤:
                  编译                                                   执行
源代码====>(中间表示形式====>)基本操作序列====>生成最终动作

编译型和解释型语言的不同指出只是在于,这些过程发生的时机不一样。
编译型语言的代表是C,源代码被编译之后生成中间文件(.o和.obj),然后用连接器和汇编器生成机器码,也就是一系列基本操作的序列,机器码最后被执行生成最终动作。解释型的语言以Ruby为例,也经历了这些步骤,不同的是,C语言会把那些从源代码“变”来的基本操作序列(保存)起来,而Ruby直接将这些生成的基本操作序列(Ruby虚拟机)指令丢给Ruby虚拟机执行然后产生动作了。


作者:余天升
链接:https://www.zhihu.com/question/21486706/answer/18422107
来源:知乎


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译语言解释型语言是两种常见的程序设计语言执行方式,它们的主要区别和特点如下: 1. **编译语言(Compiled Languages)**: - **编译过程**: 在程序被编写后,先通过编译器将其转换为机器代码或目标代码,这一过程是静态的,生成的可执行文件可以直接运行,无需每次运行都重新编译。 - **执行速度**: 由于转换成的是直接可执行的指令,所以编译语言通常有更快的运行速度。 - **错误处理**: 编译阶段发现的错误(如语法错误)编译时报告,程序一旦编译成功,就相对稳定。 - **优点**: 可执行速度快,启动响应快,适用于对性能要求高的应用,如操作系统、游戏等。 - **缺点**: 学习曲线较陡峭,如果改动代码,需要重新编译才能看到效果。 2. **解释型语言(Interpreted Languages)**: - **执行过程**: 当程序运行时,逐行或逐语句解释并执行,不需要预先编译。 - **运行速度**: 相对于编译语言解释型语言的执行速度通常较慢,因为它们需要在运行时进行解释。 - **动态性**: 代码修改后立即生效,迭代开发速度快。 - **错误处理**: 错误通常在运行时才发现,反馈及时但调试可能更复杂。 - **优点**: 开发效率高,易于调试和迭代,常用于脚本、网页开发等场景。 - **缺点**: 性能较低,对于大、高性能的应用可能不是最佳选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值