我最近听说过scala-native,听起来很有趣!
我很好奇本土意味着什么?
“提前编译器”是什么意思?
我认为web site和github repository中的描述不明确。
答案 0 :(得分:16)
我可以使用scala-native在没有JVM的情况下运行我的scala程序吗?
是的,Scala Native的目标是支持在没有任何VM的情况下编译Scala程序。我们还没有稳定版本,follow us on twitter是第一个知道何时发生这种情况的人。
我很好奇本地意味着什么?
Scala历来是一种在Java虚拟机上运行的语言。与本机应用程序不同,Java应用程序构建在附加的间接层之上,该间接层将虚拟机指令映射到底层硬件指令。代码仍然最终编译为本机代码,唯一的区别是它会在应用程序运行期间发生。这也称为即时编译策略。
“提前编译器”是什么意思?
“提前”意味着在实际运行应用程序之前,事先完成从高级Scala代码到低级本机代码的映射。这为我们节省了一些间接开销,并减少了整体资源消耗。
答案 1 :(得分:2)
来自github自述“项目目前处于预发布状态”的关键信息,最近才公布。
Native通常意味着在“裸机”上运行,生成具有非虚拟机特定二进制指令的二进制文件(例如x86机器代码)。
提前意味着最终的机器指令是在编译阶段产生的,与“Just In Time”编译器不同,例如在JVM中用于将JVM字节码转换为适当的优化机器指令。请参阅this问题的已接受答案,以便对这些概念进行非常好的解释。