程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。如 Python、Shell、JavaScript 等。
Java 语言
编译器(javac)把源代码转化为字节码,然后解释器(Java.exe)把字节码转换为计算机理解的机器码来执行。其中编译器和解释器都是 Java 虚拟机(JVM)的一部分,由于针对不同的硬件与OS,Java 解释器有所不同,因此可以实现“一次编译、到处执行”。所以 JVM 是Java 跨平台特性的关键所在 – 引入 JVM 后,Java 语言在不同平台上运行时不再需要重新编译。
对于前端开发同学使用的 JavaScript 语言,属于典型的解释型语言
[](
)JavaScript
JavaScript 作为编程语言的一种,直接输送给计算机(CPU)是不认识的(上面有提及),需要将其转换为指令集。不同类型的 CPU 的指令集是不一样的。JavaScirpt 引擎可以将 JavaScript 代码编译为不同 CPU(Intel, ARM 以及 MIPS 等)对应的机器码,同时引擎还可以执行代码、分配内存以及垃圾回收等。
Google V8 是开源高性能 JavaScript 和 WebAssembly 引擎,被用于 Chrome 和 Node.js 等。其中包括重要的四个模块:
-
Parser:将 JavaScript 源码转换为 Abstract Syntax Tree (AST)&#