第 6 期:Go 语言的编译器
本期摘要:这是 Go 夜聊的第六期节目,这期我们有幸请到了目前在 Go 语言仓库贡献排行榜上前全球前五十的贡献者——史斌,并和他一起聊了聊编译器相关的技术和相关行业的一些未来。Go 语言的编译器有什么特点?还有哪些可以改进的空间?从事芯片和编译技术相关的工作又有哪些挑战?
时间线
- 00:00 开场
- 01:00 接触 Go 语言的起因
- 03:31 Go 语言在芯片行业的现状
- 04:57 成为中国 Go 语言贡献者排名第一的经历
- 12:30 加入 Go 团队的 GitHub 组织
- 19:11 Go 语言中国贡献者俱乐部的成立过程
- 21:57 Go 语言在芯片行业的困境
- 26:26 基于 SSA 的 Go 编译器
- 32:02 现阶段编译器的改进空间
- 35:10 基于寄存器的调用规约
- 38:24 gccgo 和 gollvm
- 42:19 编译技术和行业的未来
- 47:30 推荐
- 50:05 尾声
相关链接
- 乘法指令生成错误
- 寄存器索引 LOAD/STORE
- Go 1 Benchmark
- Go 团队在 GitHub 的组织
- 前 Go 团队成员 Brad Fitzpartrick
- Go 团队成员 Cherry Zhang
- Go 语言贡献者李保坤
- Go 语言贡献者蒙卓
- Go 语言中国贡献者俱乐部
- 史斌在 GopherChina 2020 上关于 Go 编译器的演讲
- Erlang
- CSP 顺序进程通信
- Rob Pike
- Ken Thompson
- SSA 静态单赋值形式
- IR 中间语言
- Intrinsic 内建函数
- 阵列编程与向量化
- 循环优化
- Go 语言增加循环优化的讨论 Issue 24240
- 指令流水
- GCC
- LLVM
- 调用规约
- gccgo
- gollvm
- TinyGo
- Proebsting 定律
- Moore 定律
- 书籍:《史记》
- 书籍:《战国策》
- 书籍:《不拘一格》
- 播客: 从零道一
- 书籍:《Ray Tracing Gems II》