gpt4 book ai didi

oop - 为什么几乎所有的面向对象语言都编译为字节码?

转载 作者:行者123 更新时间:2023-12-02 07:41:42 24 4
gpt4 key购买 nike

在我所知道的面向对象语言中,除了 C++ 和 Objective-C 之外,几乎所有语言都编译为在某种虚拟机上运行的字节码。为什么这么多不同的语言决定编译为字节码,而不是机器代码?原则上是否有可能拥有一种编译为机器代码的高级内存管理 OOP 语言?

编辑:我知道多平台支持通常是这种方法的一个优势。但是,很可能在多个平台上进行 native 编译,而无需为每个平台创建新的编译器。例如,可以发出 C 代码,然后使用 GCC 对其进行编译。

最佳答案

其实没有什么原因,这是一种巧合。 OOP 现在是“大”编程的主导概念,虚拟机也是如此。

另请注意,传统虚拟机有两个不同的部分 - 垃圾收集器字节码解释器/JIT 编译器,并且这些部分可以单独存在。例如,称为 SBCL 的 Common Lisp 实现将程序编译为 native 代码,但在运行时大量使用垃圾收集。

关于oop - 为什么几乎所有的面向对象语言都编译为字节码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3955371/

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