有很多oop语言,但我找不到任何像垃圾收集这样的便利,但是本机编译为机器代码。类似于C和java / c#之间。我找到的一种有趣的语言是Vala,但这仅限于GNOME平台并且不是那么出名
答案 0 :(得分:1)
Go可能是最接近的。
但是为什么你到底想要它原生编译?
可移植字节码的JIT编译已被证明是一种非常有效的策略。它在运行时编译为本机代码(因此,您可以在最初的几次迭代后获得本机代码的性能),并避免了必须构建和管理特定于平台的编译二进制文件的问题。
答案 1 :(得分:0)
你在考虑C ++吗?这是高用量,几乎可以在任何(主要)平台上编译。
答案 2 :(得分:0)
如果你想使用编译为本机代码的oo语言,你将“总是”必须使用头文件和东西,因为elf格式不支持oo(elf中没有类信息)。如果您想使用外部库中的类,您需要让编译器以某种方式了解在项目之外声明的类,函数等事实。在C ++中,这可以通过使用头文件来解决。我认为,这是本机面向对象语言的一个主要缺点。要解决该问题,需要对elf / loader / linker进行一些调整,以支持您可能期望的那种功能(如“链接”对“类”)。即使垃圾收集机制甚至可以在本地语言中实现。但这似乎对os实现没有好处。
有一些C ++库可以为用户空间应用程序执行此操作,例如:
Boehm collector
Smart pointers