Swift 5.x学习笔记1-基本介绍

本文介绍了Swift 5.x的基本介绍,强调了Swift的开源性质和ABI稳定性。文章探讨了Swift与Objective-C的编译器区别,特别是SwiftC编译器的前端和LLVM后端的作用。通过编译流程的解析,展示了Swift代码如何转化为中间代码和最终的机器语言。此外,还展示了如何通过命令行工具查看Swift代码的语法树和SIL中间代码。
摘要由CSDN通过智能技术生成

之前做OC开发的时候就经常会听到同行议论Swift,虽然会有安全或者牛掰,快速等等的评价,但最多的还是1.x-2.x或者到某一个新版本之后以前的东西就不能用了,也导致我开发一直都还是使用OC,毕竟没谁希望自己写的东西明天一更新就又得重写,新的机制和新的API还得学习,但自从Swift5 ABI开始稳定之后一直就想找个机会系统的学下,但一直忙(懒),拖到了现在

Swift是开源的,其GitHub的地址是https://github.com/apple/swift

编译

Swift的底层是C++从开源项目看,C++和Swift代码占了整个Swift语言的百分之95.4,基本语言最终都是会编译成汇编语言,然后再进一步编译成机械语言来给硬件处理,这个没什么好说的,相较而言,从编译来说Swift和OC的区别在于编译器,理论上Swift基于C++走Clang应该是没跑了,但实际上并不是,Swift走的是一个叫SwiftC的编译器,具体区别如图所示

 

Clang和swiftc这种叫做编译器前端,LLVM叫做编译器后端,所以准确一点说,Swift和OC区别在于编译器前端

Clang流程我之前写过就不赘述了,swiftc大概流程图如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值