听说早期的go是用汇编+c写的,现在的go是用go实现的,我同事说还是汇编,不知是否是这样?
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
我知道的不会太准确。粗略的说,编译器最底层的部分(bootstrapping)是汇编和c作为基本go语言支持,然后在此基础之上用以前版本的go来写剩下的go编译器,这个编译器生成后能够完全处理当前版本的go语言。
部分汇编肯定是存在的,任何语言都会存在,但不能因此说是汇编实现的。
go之前是纯C写的,所以它只依赖libc库。 后来是完全能自举了,所谓的自己就是自己实现自己。 至于有没有汇编,没翻过源代码所以不好确定, 对于能跨硬件平台编译的高级语言来说,使用汇编来优化和提高性能的场合不多的。
感觉现在的静态语言都会先用其它语言先实现,然后自举,但脚本语言大多没有自举
`单行代码`
我知道的不会太准确。粗略的说,编译器最底层的部分(bootstrapping)是汇编和c作为基本go语言支持,然后在此基础之上用以前版本的go来写剩下的go编译器,这个编译器生成后能够完全处理当前版本的go语言。
部分汇编肯定是存在的,任何语言都会存在,但不能因此说是汇编实现的。
go之前是纯C写的,所以它只依赖libc库。 后来是完全能自举了,所谓的自己就是自己实现自己。 至于有没有汇编,没翻过源代码所以不好确定, 对于能跨硬件平台编译的高级语言来说,使用汇编来优化和提高性能的场合不多的。
感觉现在的静态语言都会先用其它语言先实现,然后自举,但脚本语言大多没有自举