image.png

Swift简介

Swift是Apple在2014年6月WWDC发布的全新编程语言,中文名和LOGO是“雨燕”

Swift之父Chris Lattner
Clang编译器作者、LLVM项目的主要发起人
从Apple离职后,先后跳槽到Tesla、Google
目前在Google Brain从事AI研究

Swift版本

  • 历时5年发展,从Swift1.x发展到了Swift5.x版本,经历了多次重大改变,ABI终于稳定
  • API(Application Programming Interface):应用程序编程接口
  • 源代码和库之间的接口

  • ABI(Application Binary Interface):应用程序二进制接口

  • 应用程序与操作系统之间的底层接口
  • 涉及的内容有:目标文件格式、数据类型的大小\布局\对齐、函数调用约定等等

  • 随着ABI的稳定,Swift语法基本不会再有太大的变动,此时正是学习Swift的最佳时刻

  • Swift完全开源: https://github.com/apple/swift,主要采用C++编写

编译流程

image.png
image.png
参考:https://swift.org/compiler-stdlib

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
  • 对汇编代码进行分析,可以真正掌握编程语言的本质