swift的编译过程究竟是怎样的?

发布于 2022-09-04 19:53:29 字数 78 浏览 30 评论 0

很多高级语言都会经编译器编译生成C这种低层次语言,然后再根据C编译成汇编再到二进制,swift语言的编译过程是怎么样的?从哪些地方能窥探一下?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无边思念无边月 2022-09-11 19:53:29

2000年,克里斯·拉特纳自奥勒冈州波特兰大学(University of Portland)计算机科学系毕业。之后进入伊利诺伊大学厄巴纳-香槟分校(UIUC)就读。在此期间,他经年累月学习《Compilers: Principles, Techniques, and Tools》这本龙书,并与维克拉姆·艾夫(Vikram Adve)发起LLVM(Low Level Virtual Machine)项目,并于2003年发表,新式的LLVM compiler使用GCC进行语义分析产生IF(Intermediate Format),然后LLVM使用分析结果完成源码最优化的工作。

Apple也是LLVM计划的主要资助者。早年Apple一直使用GCC作为官方的编译器,但Apple对GCC的性能不满意,再者Objective-C在GCC中优先级低,GCC对Objective-C语言新特性的支持程度也不高。因此Apple一直在寻找compiler的开源替代品,于是他们将目光转移到LLVM身上。2005年,Apple直接雇用了克里斯·拉特纳及他的团队,为了苹果电脑开发应用程序系统[1]。克里斯一开始将LLVM运行时的编译架构在OpenGL stack之上,这样OpenGL stack可以产出更高效率的图形代码。OpenGL stack成为JIT compiler, Xcode 3.1实现了llvm-gcc compiler, Xcode 3.2实现了Clang 1.0,克里斯再接再励, Xcode 4.0实现了Clang 2.0.后来的Mac OS X 10.6 Snow Leopard即大量使用LLVM的编译技术。

接着克里斯发起Clang项目,希望完全取代GCC。Clang在性能评比上的多项指针,如编译Object-C的速度,超过GCC,LLVM 3.0发布已完整支持所有ISO C++标准,代表着LLVM正式走向成熟。

2010年7月开始,克里斯开始设计Swift。完成基础架构后,克里斯带领开发小组陆续完成语法设计、编译器、运行时、框架、IDE和文档等相关工作。这个语言在2014年WWDC大会上公开。

完整的Swift及其编译器源代码参考 Swift 在 Github上的源代码 https://github.com/apple/swift

另外这个简书写的也很有意思 Swift Runtime 编译和运行时原理初探

负佳期 2022-09-11 19:53:29

Swift 经由 LLVM,编译成LLVM中间码,最后编译成本地机器代码(二进制)。目前运行的时候会依赖 Objective-C 的运行时。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文