gpt4 book ai didi

java - 编译语言和解释语言有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 11:21:28 24 4
gpt4 key购买 nike

在阅读了一些关于这个主题的 Material 后,我仍然不确定编译语言和解释语言之间的区别是什么。有人告诉我这是 Java 和 JavaScript 之间的区别之一。有人可以帮助我理解它吗?

最佳答案

What’s the difference between compiled and interpreted language?

区别在于语言中不是;它在实现中。

从我的系统中得到这个,这里有一个答案:

  • 在编译实现中,原始程序被翻译成本地机器指令,由硬件直接执行。

  • 在解释的实现中,原始程序被翻译成别的东西。另一个程序,称为“解释器”,然后检查“其他东西”并执行任何需要的操作。根据语言及其实现,“其他”有多种形式。从更受欢迎到不太受欢迎,“别的东西”可能是

    • 虚拟机的二进制指令,通常称为 字节码,就像在 Lua、Python、Ruby、Smalltalk 和许多其他系统中所做的那样(这种方法在 1970 年代由UCSD P 系统和 UCSD 帕斯卡)

    • 原始程序的树状表示,例如抽象语法树,就像许多原型(prototype)或教育解释器所做的那样

    • 源程序的标记化表示,类似于 Tcl

    • 源程序的字符,就像在 MINT 和 TRAC 中所做的那样

使问题复杂化的一点是可以将字节码翻译(编译)为 native 机器指令。因此,一个成功的解释实现最终可能会获得一个编译器。如果编译器在幕后动态运行,它通常被称为即时编译器或 JIT 编译器。 JIT 已经为 Java、JavaScript、Lua 和我敢说许多其他语言开发。那时你可以有一个混合实现,其中一些代码被解释和一些代码被编译。

关于java - 编译语言和解释语言有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2657268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com