Swift编译原理

2024-02-24  本文已影响0人  iOS寻觅者

1、LLVM编译器

LLVM编译器一般分为前端和后端

前端:主要进行词法分析,生成语法树
后端:生成对应平台的二进制代码

编译流程

我们知道OC的前端是通过Clang进行编译的,Swift的前端是通过swiftc来编译的
不同语言的前端可能不同,但最终都会通过编译器的后端生成对应平台的二进制代码


image.png

swift整个编译流程如下图所示

image.png

Swift Code:我们编写的Swift代码
Swift AST:Swift语法树
Raw Swift IL:Swift特有的中间代码
Canonical Swift IL:更简洁的Swift特有的中间代码
LLVM IR:LLVM的中间代码
Assembly:汇编代码
Executable:二进制代码
详细讲解可以参考以下网址:https://swift.org/swift-compiler/#compiler-architecture

2、swiftc的基本操作演练:下面我们可以通过一些swiftc的一些基本操作来了解

1.我们先新建一个Swift的命令行项目

image image

2.然后打开终端,cd到main.swift路径
3.然后我们输入swiftc -dump-ast main.swift,来查看下生成的语法树
4.我们还可以输入swiftc -emit-sil main.swift生成最简洁的SIL代码
5.我们还可以输入swiftc -emit-ir main.swift生成LLVM IR中间代码
6.我们还可以输入swiftc -emit-assembly main.swift生成汇编代码

上一篇下一篇

猜你喜欢

热点阅读