Law*_*e H 3 language-agnostic open-source swift
正如大多数人可能都知道的那样,Apple在2015年WWDC上宣布Swift将成为一种开源语言.
我的问题是:由于语言本身只是一组语法规则,"开源"到底意味着什么呢?是他们的语言(编译器等)的实现是开源的吗?如果是这样,当有人能够查看语言规范并构建自己的Swift编译器时,为什么这很重要?
(相反,如果一种语言是专有的,是否意味着不允许第三方为其编写自己的编译器/解释器?)
给定其语法的正式描述(以及语法中每个规则的含义),任何人都可以为某种语言编写编译器。事实上,人们已经重新实现了自己的 Swift 编译器 \xe2\x80\x94 环顾网络和 App Store,你会发现一些不使用 Apple 编译器的交互式 Swift 学习体验。
\n\n然而,编译器与编译器并不相同。Apple 的 Swift 文档在描述语法中每个规则的每个含义方面可能并不全面,即使是,这些规则的独立实现也可能不会表现相同。(您可能知道一些 Swift 编译器错误?切换编译器可能会修复它们......并给您带来一组完全不同的错误!)
\n\n此外,Swift 的许多关键承诺并不是语言规范\xe2\x80\x94 的一部分,例如对快速生成代码的出色优化是编译器实现的一部分。最重要的是,Swift 的很多功能都来自标准库\xe2\x80\x94,为此,Apple 的界面和文档可能足以让人们创建类似的实现,但绝对不足以告诉你如何制作 100% 兼容且具有相同性能特征的产品。
\n\n(我不是律师,但也值得思考是否存在需要解决的法律问题\xe2\x80\x94Sun、微软和甲骨文从今天崭露头角的 Swift 程序员出生之前就一直在争夺 Java .)
\n\n当然,所有这一切都假设您发现构建现代编译器和库很容易。我不会认为这是微不足道的。
\n\n那么,开源 Swift 意味着什么呢?这意味着每个人都可以访问官方编译器和库实现。因此社区可以做一些事情,比如将它们移植到其他平台,并保证 100% 兼容性。或者对其进行修改以进行改进,这些改进可能会回到官方版本中。或者使用 Swift 作为开发不同东西的起点(例如,Swift 的纯函数式编程)。
\n