解读程序的编译与解释,从实用角度来看,主要区别在于代码被翻译成目标CPU指令的时机。对于编译型语言如C,代码在编译阶段就被转换为特定CPU体系的指令。这意味着若程序需在不同CPU上运行,代码需重新编译。反之,非编译型语言如Python或Java,生成的是平台无关的中间代码,运行时再翻译成目标CPU指令,这使得代码能在多种CPU架构间无缝运行,无需重新编译。
至于虚拟机的存在,是为了解决非编译型语言生成的中间代码无法直接在特定平台上运行的问题。虚拟机在每个平台中以软件形式模拟出执行中间代码的假想平台,负责将中间代码转化为目标平台指令,以实现跨平台运行。
综上所述:
1,编译型语言在编译阶段生成特定CPU指令,非编译型语言运行时生成。
2,虚拟机执行任务为将中间代码翻译为目标平台指令,实现跨平台运行。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。