# 第 6 期:Go 语言的编译器
主持:[杨文](https://maiyang.me),[欧长坤](https://changkun.de)
嘉宾:[史斌](https://github.com/benshi001)
本期摘要:这是 Go 夜聊的第六期节目,这期我们有幸请到了目前在 Go 语言仓库贡献排行榜上前全球前五十的贡献者——史斌,并和他一起聊了聊编译器相关的技术和相关行业的一些未来。Go 语言的编译器有什么特点?还有哪些可以改进的空间?从事芯片和编译技术相关的工作又有哪些挑战?
## 时间线
- 00:00 开场
- 01:00 接触 Go 语言的起因
- 03:31 Go 语言在芯片行业的现状
- 04:57 成为中国 Go 语言贡献者排名第一的经历
- 12:35 加入 Go 团队的 GitHub 组织
- 19:09 Go 语言中国贡献者俱乐部的成立过程
- 21:12 Go 语言在芯片行业的困境
- 28:08 基于 SSA 的 Go 编译器
- 33:52 现阶段编译器的改进空间
- 36:53 基于寄存器的调用规约
- 40:08 gccgo 和 gollvm
- 44:02 编译技术和行业的未来
- 49:13 推荐
- 51:48 尾声
## 相关链接
- [乘法指令生成错误](https://golang.org/issue/19141)
- [寄存器索引 LOAD/STORE](https://golang.org/issue/24907)
- [Go 1 Benchmark](https://github.com/golang/go/tree/master/test/bench/go1)
- [Go 团队在 GitHub 的组织](https://github.com/orgs/golang/people)
- [前 Go 团队成员 Brad Fitzpartrick](https://github.com/bradfitz)
- [Go 团队成员 Cherry Zhang](https://github.com/cherrymui)
- [Go 语言贡献者李保坤](https://github.com/oiooj)
- [Go 语言贡献者蒙卓](https://github.com/mengzhuo)
- [Go 语言中国贡献者俱乐部](https://golangcn.org)
- [史斌在 GopherChina 2020 上关于 Go 编译器的演讲](https://github.com/gopherchina/conference/blob/master/2020/2.1.5%20Go%E8%AF%AD%E8%A8%80%E7%BC%96%E8%AF%91%E5%99%A8%E7%AE%80%E4%BB%8B.pdf)
- [GopherCon 2019: Death by 3,000 Timers: Streaming Video-on-Demand for Cable TV (YouTube)](https://www.youtube.com/watch?v=h0s8CWpIKdg)
- [Erlang](https://www.erlang.org/)
- [CSP 顺序进程通信](https://en.wikipedia.org/wiki/Communicating_sequential_processes)
- [Rob Pike](https://en.wikipedia.org/wiki/Rob_Pike)
- [Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson)
- [SSA 静态单赋值形式](https://en.wikipedia.org/wiki/Static_single_assignment_form)
- [IR 中间语言](https://en.wikipedia.org/wiki/Intermediate_representation)
- [Intrinsic 内建函数](https://en.wikipedia.org/wiki/Intrinsic_function)
- [阵列编程与向量化](https://en.wikipedia.org/wiki/Array_programming)
- [循环优化](https://en.wikipedia.org/wiki/Loop_optimization)
- [Go 语言增加循环优化的讨论 Issue 24240](https://golang.org/issue/24240)
- [指令流水](https://en.wikipedia.org/wiki/Instruction_pipelining)
- [GCC](https://gcc.gnu.org/)
- [LLVM](https://llvm.org/)
- [调用规约](https://en.wikipedia.org/wiki/Calling_convention)
- [gccgo](https://golang.org/doc/install/gccgo)
- [gollvm](https://go.googlesource.com/gollvm/)
- [TinyGo](https://tinygo.org/)
- [Proebsting 定律](https://proebsting.cs.arizona.edu/law.html)
- [Moore 定律](https://en.wikipedia.org/wiki/Moore%27s_law)
- [书籍:《史记》](https://book.douban.com/subject/1836555/)
- [书籍:《战国策》](https://book.douban.com/subject/1107841/)
- [书籍:《不拘一格》](https://book.douban.com/subject/35102294/)
- [播客: 从零道一](https://0011.one/)
- [书籍:《Ray Tracing Gems II》](https://www.realtimerendering.com/raytracinggems/rtg2/index.html)
## 📝 联系我们
- 来信 [hi@talkgo.fm](mailto:hi@talkgo.fm)
- [Telegram 听众群](https://t.me/talkgofm)