主要是针对Swift5.1,基础语法,和内部剖析。
基础语法
为什么选择Swift5.1
- 历时5年发展,从Swift1.x发展到Swift5.x,经历了多次重大改变,ABI终于稳定
-
API
(Application Programming Interface):应用程序编程接口- 源代码和库之间的接口
-
ABI
(Application Binary Interface):应用程序二进制接口- 应用程序与操作系统之间的底层接口
- 涉及内容有:目标文件格式、数据类型的大小/布局/对齐、函数调用约定等等
- Swift是完全开源的 https://github.com/apple/swift 主要采用C++编写
编译流程
参考地址 https://swift.org/compiler-stdlib/
swiftc
何为swiftc:
- swiftc存放在Xcode内部
- Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
- 基本操作
- 生成语法树: swiftc -dump-ast main.swift
- 生成最简洁的SIL代码:swiftc -emit-sil main.swift
- 生成LLVM IR代码: swiftc -emit-ir main.swift -o main.ll
- 生成汇编代码: swiftc -emit-assembly main.swift -o main.s
Xcode中创建一个Swift工程,swift从第一行有效的函数开始运行
import Foundation
print("Hello, World!")
在终端使用swiftc -dump-ast main.swift
语法生成语法树,其他类似可以自己尝试