Listen

Description

# 第 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)