golang 本身是用什么语言编写的?类似 「xx 语言是用什么语言实现的」这种疑问挺常见的,特别对于刚接触编程语言的人!记得我刚接触时,很困惑:这个语言是 C 实现的,那 C 是什么实现的?借此,咱们梳理下这个问题!
编程语言的发展
在计算机发展初期,编程直接通过机器指令和计算机交互,也就是机器语言,一堆0101,简直无法读无法改,所以发展出汇编语言。汇编语言指令总体上和机器语言指令是一一对应的,但可读性有了很大加强!这两种语言称为低级语言。
20世纪50、60年代,涌现了各种高级语言,在70年代初,随着Unix的开发,C语言被开发出来,一直流行到现在。
之后编程语言不断发展,出现了面向对象编程语言、函数式编程语言,还分为动态语言和静态语言等等。真是百花齐放百家争鸣。
然而,编程语言的发展并没有就此止步。在过去的十年内,又涌现出很多新的语言,如:Go、Swift、Rust、Kotlin、Dart 等等。新语言有一些先天优势:没有历史包袱,可以吸纳这么多年,其他语言的优势,避免一些问题,同时有些是为了解决某一些问题而出现,也是为了解决之前语言的一些问题。因此,这些新语言,关注度都不错。
Go语言的发展历程
2009 年 11 月,Google 对外宣布,开源其通用编程语言 Go 语言,因为 Google 出品,同时创作者又是特别有名的几个人,立马引起大家极大的兴趣,当年 Go 夺下了 TIOBE 2019年年度编程语言称号。2012 年 3 月份,Go 发布了 Go1.0 稳定版本。之后每年发布两个版本。下图是目前为止,发布版本的情况,下表主要列举 GC 相关的改进。
Go 本身用什么语言实现
Go1.4 之前(包括1.4),主要是 C 语言实现的(当然还有部分汇编);Go1.5 开始,实现了自举:也就是用低版本的 Go 语言编译自己,这个过程,Go 团队做了大量的自动化转换工作。
所以,现在 Go 语言是用 Go 语言实现的,当然,包含部分汇编代码。
这是 Go 语言源码地址。
Go语言中文网,致力于每日分享编码知识,欢迎关注我,会有意想不到的收获!