Swift版本
历时5年发展,从Swift1.x发展到了Swift5.x版本,经历了多次重大改变,ABI终于稳定
API(Application Programming Interface):应用程序编程接口
源代码和库之间的接口
ABI(Application Binary Interface):应用程序二进制接口
应用程序与操作系统之间的底层接口
涉及的内容有:目标文件格式、数据类型的大小\布局\对齐、函数调用约定等等
随着ABI的稳定,Swift语法基本不会再有太大的变动,此时正是学习Swift的最佳时刻
截止至2019年6月,目前最新版本:Swift5.1
Swift完全开源: https://github.com/apple/swift,主要采用C++编写
编译流程
编译流程
LLVM:编译器后端,生成对应平台的二进制代码。
Clang、 swiftc:编辑器前端,词法分析。
Swift AST:语法树。
Swift IL:swift中间代码。
参考:https://swift.org/compiler-stdlib
swiftc
swiftc简单操作
swiftc存放在Xcode内部Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
生成语法树: swiftc -dump-ast main.swift
生成最简洁的SIL代码:swiftc -emit-sail main.swift
生成LLVM IR代码: swiftc -emit-ir main.swift -o main.ll
生成汇编代码: swiftc -emit-assembly main.swift -o main.s