你们大多数人可能都知道,苹果在2015年WWDC上宣布Swift将成为一种开源语言。
我的问题是:既然语言本身本质上只是一套语法规则,那么“开源”到底意味着什么呢?是因为他们对语言(编译器等)的实现是开源的吗?如果是这样的话,当任何人只需要查看语言规范并构建自己的Swift编译器时,这又有什么意义呢?
(相反,如果一种语言是专有的,这是否意味着不允许第三方为其编写自己的编译器/解释器?)
发布于 2015-06-11 10:12:51
根据Swift Blog,这意味着Swift编译器和标准库的代码将是开源的。
发布于 2015-06-11 16:11:58
给定语法的正式描述(以及语法中每条规则的含义),任何人都可以为一种语言编写一个编译器。事实上,人们已经重新实现了自己的Swift编译器--看看网络和应用商店,你会发现一些不使用Apple编译器的交互式Swift学习体验。
但是,(编译器)与(编译器)并不相同。苹果的Swift文档在描述语法中每条规则的每一个含义方面可能不够全面,即使是这样,这些规则的独立实现也不太可能完全相同。(您可能知道有几个Swift编译器错误?转换编译器可以修复它们..。给你一套完全不同的错误!)
此外,Swift的许多关键承诺并不是语言规范的一部分--比如为快速生成的代码进行伟大的优化是编译器实现的一部分。最重要的是,Swift的很多功能来自标准库--因此,苹果的界面和文档可能足以让人创建类似的实现,但肯定不足以告诉你如何使它100%兼容,并具有相同的性能特性。
(我不是律师,但也值得考虑是否有法律问题需要解决-Sun、Microsoft和Oracle从今天新兴的Swift程序员诞生之前就一直在为Java而战。)
当然,所有这些都假设您发现构建一个现代编译器和库很容易。我不认为这是微不足道的。
那么,开源Swift意味着什么呢?这意味着每个人都可以访问、官方编译器和库实现。因此,社区可以在保证100%兼容性的前提下,将它们移植到其他平台。或者利用它进行改进,这些改进可能会重新进入官方版本。或者使用Swift作为起点来开发不同的东西(例如,Swift的纯函数编程表亲)。
https://stackoverflow.com/questions/30776125
复制相似问题