
Swift簡介
????Swift是Apple在2014年6月WWDC發(fā)布的全新編程語言,中文名和LOGO是“雨燕”
????Swift之父Chris Lattner是Clang編譯器作者、LLVM項(xiàng)目的主要發(fā)起人,從Apple離職后,先后跳槽到Tesla、Google p目前在Google Brain從事AI研究
????歷時(shí)5年發(fā)展,從Swift1.x發(fā)展到了Swift5.x版本,經(jīng)歷了多次重大改變,ABI終于穩(wěn)定 ????????API(Application Programming Interface):應(yīng)用程序編程接口
????源代碼和庫之間的接口
ABI(Application Binary Interface):應(yīng)用程序二進(jìn)制接口
????應(yīng)用程序與操作系統(tǒng)之間的底層接口
????涉及的內(nèi)容有:目標(biāo)文件格式、數(shù)據(jù)類型的大小\布局\對(duì)齊、函數(shù)調(diào)用約定等等
????隨著ABI的穩(wěn)定,Swift語法基本不會(huì)再有太大的變動(dòng),此時(shí)正是學(xué)習(xí)Swift的最佳時(shí)刻 n 截止至2019年6月,目前最新版本:Swift5.1
????Swift完全開源: https://github.com/apple/swift,主要采用C++編寫
編譯流程


關(guān)于swiftc
swiftc存放在Xcode內(nèi)部: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
對(duì)匯編代碼進(jìn)行分析,可以真正掌握編程語言的本質(zhì)