解释型语言与编译型语言
编译型语言
编译型语言是指首先将编写的代码编译成可执行文件。如 windows 系统上,首先要编译成 .exe 文件。
flowchart LR 源程序 -->|集中转换| 机器指令([机器指令]) -->|驱动机器运行| 机器
解释型语言
相对于编译型语言,解释型语言 不需要编译,程序在运行时才编译成机器语言解释一条执行一条,边解释边执行。效率低。
flowchart LR 源程序 -->|逐条读取
逐条转换
逐条执行| 机器
解释型语言是为了解决编译型语言跨平台的不足
解释型语言 Java
Java 程序的跨平台是因 Java 虚拟机跨平台
stateDiagram JavaSource: Java 源代码(.java) JavaByte: 字节码文件(.class) 机器码 JavaSource --> JavaByte : 编译器编译 JavaByte --> 机器码 : JIT 编译器即时编译 JavaByte --> 机器码 : Java 解释器解释执行
解释型语言与编译型语言对比
类型 | 原理 | 优点 | 缺点 |
---|---|---|---|
编译型语言 | 通过专门的编译器,将高级语言一次性编译成可被平台执行的机器语言 | 编译一次后,脱离开发环境可独立运行,效率高 | 对编译器依赖较大,可移植性差 |
解释型语言 | 由专门的解释器,将原程序解释成特定的平台可执行的指令 | 跨平台性好,通过不同的解释器,将其解释成某平台可识别的指令即可 | 编译和解释一起执行,效率低 |