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

计算机是不能够识别高级语言的,所以当我们运行一个高级语言程序的时候,就需要一个“翻译机”来从事把高级语言转变成计算机能读懂的机器语言的过程。这个过程分成两类,第一种是编译,第二种是解释。
1. 概念
编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。
解释型语言:在运行的时候将程序翻译成机器语言,每次执行均需要翻译,所以运行速度相对于编译型语言要慢。效率比较低,依赖解释器,跨 平台性好。
2. 实例
2.1编译型语言:
C/C++:
编译成二进制代码、链接后,可形成独立执行的exe文件。
2.2解释型语言:
脚本语言,eg:vbscript,javascript,installshield script,ActionScript,PHP,Perl,Nuva等等,
脚本语言不需要编译,可以直接用,相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。
3. 混合型语言(带虚拟机语言)Java
Java首先由编译器编译成.class(字节码)文件,然后在通过JVM(java虚拟机)从.class文件中读一行解释执行一行。也正是由于java对于多种不同的操作系统有不同的JVM,所以实现了真正意义上的跨平台。
(1)Java语言的编译–>解释–>运行过程
这里写图片描述
(2)JVM
这里写图片描述
4. 语言执行图
这里写图片描述
从上图可以看出,C和C++更接近于底层硬件,但是不能像汇编语言一样可以直接访问寄存器等硬件。而python和java相对于C和C++的抽象层次又高了一层,它们不能通过指针直接访问内存。从机器语言->汇编语言->系统语言(C和C++)->解释型语言(python)和虚拟机语言(java),抽象层次越来越高,越贴近于人的思维,不需要考虑那么多细节;同时,程序员的自由度和程序的运行速度越来越低。
5. 脚本语言理解
一般都是以文本形式存在,类似于一种命令.
举个例子说,如果你建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件.
你为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,你的程序用这种规则来理解编写人的意图,并作出回应.那么,这一套规则就是脚本语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值