解释型语言与编译型语言
Posted 青山应回首
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解释型语言与编译型语言相关的知识,希望对你有一定的参考价值。
程序语言从执行方式上来区分有两种:解释型 和 编译型
1.编译型语言:在程序执行之前,有一个编译过程,将源程序翻译成机器码(CPU指令)、以二进制文件形式存在,之后再执行的时候直接执行,不再需要翻译的过程;坏处则是难以支持许多动态特性;
- C
- C++
2.解释型语言:在执行的时候将程序翻译成机器码(CPU指令),所以运行速度要慢于编译型语言,每次执行都需要一个翻译的过程;大部分CPU时间花在了解释器运行上面;好处是实现起来非常简单,也很容易添加新特性;
- Python
- Java
3.为什么PyPy要比CPython执行速度快呢?
PyPy使用了JIT技术,JIT是解释型和编译型两者的结合,对Python代码进行动态编译(注意不是解释):
首先让代码解释执行,同时收集信息,在收集到足够信息的时候,将代码动态编译成CPU指令,然后用CPU指令替代解释执行的过程;
因为编译发生在马上要执行之前,所以叫做Just-In-Time Compiler。编译之后速度就是编译执行的速度了,自然比解释执行要快得多,所以运用JIT的PyPy要比CPython快不少。
以上是关于解释型语言与编译型语言的主要内容,如果未能解决你的问题,请参考以下文章