0
点赞
收藏
分享

微信扫一扫

Go 实现自举的具体含义

老北京的热干面 2022-02-03 阅读 40
golang自举

和很多主流语言一样,Go 语言编译器最初都是由 C 语言和汇编语言实现的。C 语言和汇编实现的G o 编译器(记作 A)用来编译 Go 源文件。那么问题来了?

是否可以用 Go 语言自身实现一个 Go 编译器 B ,用编译器 A 来编译 Go 编译器 B 工程的源码并链接成最终的 Go 编译器 B 呢?这就是 Go 核心团队在 Go 1.5 版本时做的事情。

他们将绝大多数原来用 C 和汇编编写的 Go 编译器以及运行时实现改为使用 Go 语言编写,并用 Go 1.4.x 编译器(C 与汇编实现的,相当于 A ) 编译出 Go 1.5 编译器。这样自 Go 1.5 版本开始,Go 编译器就是用 Go 语言实现的了,这就是所谓的自举。即用要编译的目标编程语言 (Go 语言)编写其(Go)编译器。

举报

相关推荐

0 条评论