swift - 随着 Swift 的开源,如何让它在 JVM 上运行?

标签 swift jvm llvm

<分区>

我主要使用 Objective-C 和 Swift 进行编程,并且理解 Apple 在年底前宣布开放源代码 Swift 作为使其也可用于后端编程的举措。引用 Craig Federighi(工程高级副总裁)在主题演讲中的话:“我们认为 Swift 是我们将用于应用程序和系统编程的语言”。提到系统编程和提到将有用于 Linux 的库似乎也清楚地表明了将其用作后端开发语言的道路。

所以我的问题与可能采用的两种可能路径有关。一方面,Swift 的 page说“使用令人难以置信的高性能 LLVM 编译器,Swift 代码被转换为优化的 native 代码,以充分利用现代硬件。”这意味着必须为我假设的每个目标硬件编译它。这个假设是否正确?

另一方面,如果 Swift 被编译到 JVM,我认为这将使 Swift 的采用范围更广、速度更快,因为它可以利用 JVM 的硬件独立性。

我想我的问题的重点是:以上这两个假设是否正确?甚至可以将 Swift 编译成 JVM 吗?如果是这样,相对于每个目标硬件的 native 代码,它有哪些优势和劣势。

我很想知道这是否是关于如何考虑 Swift 的这种开发的大概情况。

最佳答案

LLVM IR 可用作与平台无关的二进制分发方法。 Google 使用 PNaCl 正是这样做的。 http://www.chromium.org/nativeclient/pnacl/introduction-to-portable-native-client

我不知道 JVM 是否提供了优于 LLVM IR 的优势,但它与锁定到一种确切的二进制格式不同。

关于swift - 随着 Swift 的开源,如何让它在 JVM 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30721706/

相关文章:

c++ - 从 FloatingLiteral/APFloat 获取原始解析数字

ios - 带有 AutoDimension 的 UITableViewCell 中的 UITableView

ios - 在没有 Storyboard的情况下创建和执行 segue

c# - 为 JVM 实现 C#

java - 保持 JVM 在 iseries 上运行

visual-c++ - LLVM 调试元数据中的 "retainedNodes"是什么?

ios - 如何使用平移手势限制对象可以移动到另一个 View 边界的区域?

swift - 提交后如何摆脱 xib?

linux - 是否可以通过模式切换在 64 位进程中执行 32 位代码?

c++ - 将 LLVM 位码加载到模块 : cannot convert ‘std::unique_ptr<llvm::Module>’ to ‘llvm::Module*’