更新时间:2024-01-19 15:20:34
封面
版权信息
作者简介
内容简介
专家推荐
第1章 Swift
1.1 Swift简介
1.2 泛型
1.2.1 类型约束
1.2.2 关联类型
1.2.3 类型擦除
1.2.4 Where语句
1.2.5 泛型和Any类型
1.3 集合
1.3.1 基本概念
1.3.2 迭代器
1.3.3 Sequence协议
1.3.4 Collection协议
1.3.5 Map
1.3.6 flatMap
1.3.7 Reduce
1.3.8 Array
1.3.9 弱引用的Swift数组
1.3.10 Dictionary
1.4 协议式编程
1.5 链式编程
1.6 Swift内存管理
1.6.1 内存分配
1.6.2 Swift派发机制
1.6.3 基本数据类型内存管理
1.6.4 struct内存管理
1.6.5 class内存管理
1.6.6 协议类型内存管理
1.6.7 泛型的内存管理
1.7 JSON数据的处理
1.7.1 使用JSONDecoder
1.7.2 CodingKey协议
1.7.3 JSONDecoder的keyDecodingStrategy属性
1.7.4 枚举定义block
1.7.5 inout
1.8 网络请求
1.9 自动布局SnapKit库分析
1.9.1 给谁做约束
1.9.2 如何设置约束
1.9.3 设置完约束后如何处理
1.10 用Swift实现一个简单的语言转译器
1.10.1 转译器简介
1.10.2 词法分析器
1.10.3 语法分析器
1.10.4 遍历器
1.10.5 转换器
1.10.6 代码生成器
1.10.7 Scheme的其他特性
1.10.8 Babel
1.11 用Swift开发一个简单的解释器
1.11.1 四则运算
1.11.2 算术表达式
1.11.3 中间表示
1.11.4 变量
1.11.5 属性
1.11.6 静态检查
第2章 编译器
2.1 LLVM简介
2.2 编译流程
2.3 使用clang命令编译.m文件
2.3.1 构建Target
2.3.2 Target在构建过程中的控制
2.4 clang static analyzer
2.5 IR代码
2.5.1 IR结构
2.5.2 LLVM IR优化
2.5.3 SSA
2.6 clang前端组件
2.6.1 库的介绍
2.6.2 使用libclang进行语法分析
2.7 Driver
2.7.1 Driver的工作流程
2.7.2 Parse
2.7.3 Pipeline
2.7.4 Action
2.7.5 Bind
2.7.6 Translate
2.7.7 Jobs
2.7.8 Execute
2.8 clang attribute
2.9 clang警告处理
2.10 通过LibTooling控制语法树
2.11 clang插件
2.12 LLVM Backend
2.12.1 CodeGen阶段
2.12.2 SelectionDAG
2.12.3 Register Allocation
2.12.4 Code Emission
2.13 LLVM优化
2.14 Swift编译
2.15 编译后生成的二进制内容Link Map File
2.16 编译后生成的dSYM文件
2.17 Mach-O文件
2.18 如何利用Mach-O
2.18.1 打印堆栈信息,保存现场