首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于一种语言来说,开放源码意味着什么?

对于一种语言来说,开放源码意味着什么?
EN

Stack Overflow用户
提问于 2015-06-11 08:57:40
回答 2查看 365关注 0票数 4

你们大多数人可能都知道,苹果在2015年WWDC上宣布Swift将成为一种开源语言。

我的问题是:既然语言本身本质上只是一套语法规则,那么“开源”到底意味着什么呢?是因为他们对语言(编译器等)的实现是开源的吗?如果是这样的话,当任何人只需要查看语言规范并构建自己的Swift编译器时,这又有什么意义呢?

(相反,如果一种语言是专有的,这是否意味着不允许第三方为其编写自己的编译器/解释器?)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-11 10:12:51

根据Swift Blog,这意味着Swift编译器和标准库的代码将是开源的。

  • Swift源代码将在OSI许可许可下发布.
  • 我们会接纳社会人士的贡献,并鼓励他们作出贡献。
  • 在启动时,我们打算为OS、iOS和Linux提供端口。
  • 源代码将包括Swift编译器和标准库。
票数 7
EN

Stack Overflow用户

发布于 2015-06-11 16:11:58

给定语法的正式描述(以及语法中每条规则的含义),任何人都可以为一种语言编写一个编译器。事实上,人们已经重新实现了自己的Swift编译器--看看网络和应用商店,你会发现一些不使用Apple编译器的交互式Swift学习体验。

但是,(编译器)与(编译器)并不相同。苹果的Swift文档在描述语法中每条规则的每一个含义方面可能不够全面,即使是这样,这些规则的独立实现也不太可能完全相同。(您可能知道有几个Swift编译器错误?转换编译器可以修复它们..。给你一套完全不同的错误!)

此外,Swift的许多关键承诺并不是语言规范的一部分--比如为快速生成的代码进行伟大的优化是编译器实现的一部分。最重要的是,Swift的很多功能来自标准库--因此,苹果的界面和文档可能足以让人创建类似的实现,但肯定不足以告诉你如何使它100%兼容,并具有相同的性能特性。

(我不是律师,但也值得考虑是否有法律问题需要解决-Sun、Microsoft和Oracle从今天新兴的Swift程序员诞生之前就一直在为Java而战。)

当然,所有这些都假设您发现构建一个现代编译器和库很容易。我不认为这是微不足道的。

那么,开源Swift意味着什么呢?这意味着每个人都可以访问官方编译器和库实现。因此,社区可以在保证100%兼容性的前提下,将它们移植到其他平台。或者利用它进行改进,这些改进可能会重新进入官方版本。或者使用Swift作为起点来开发不同的东西(例如,Swift的纯函数编程表亲)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30776125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档