0

有很多 oop 语言,但我找不到任何具有像垃圾收集这样的便利,但可以本地编译为机器代码的语言。有点像 C 和 java/c# 之间的东西。我发现的一种有趣的语言是 Vala,但它仅限于 GNOME 平台并且不是那么知名

4

3 回答 3

1

Go可能是最接近的。

但是到底为什么你想要它本地编译呢?

可移植字节码的 JIT 编译已被证明是一种非常有效的策略。它在运行时编译为本机代码(因此您在最初的几次迭代后即可获得本机代码的性能),并且避免了必须构建和管理特定于平台的编译二进制文件的问题。

于 2012-06-10T17:09:32.070 回答
0

你在考虑 C++ 吗?它的使用率很高,几乎可以在任何(主要)平台上编译。

于 2012-06-10T16:59:06.480 回答
0

如果您想使用编译为本机代码的 oo 语言,您将“总是”必须使用头文件和东西,因为 elf 格式不支持 oo(elf 中没有类信息)。如果您想要使用来自外部库的类,您需要让编译器以某种方式了解在您的项目之外声明的类、函数等这一事实。在 C++ 中,这是通过使用头文件来解决的。所以,我认为,这是本机面向对象语言的一个主要缺点。为了解决这个问题,需要对 elf/loader/linker 进行一些调整,以支持您可能期望的那种特性(如“链接”与“类”)。即使垃圾收集机制甚至可以用本机语言实现。

有 C++ 库可以为用户空间应用程序执行此操作,例如:
Boehm 收集器
智能指针

于 2014-12-02T09:52:00.767 回答