golang底层是c语言吗?
最早的时候,Golang是用的C语言和汇编实现的。
后面Golang实现了自举,重写了编译器,所以现在是用的Golang本身实现的。
假如你发明了一种新的语言 CNifeLang,首先需要用一种现有的语言写一个 CNifeLang 的编译器,比如说就用 Golang 吧;你用 Golang 写了一个 CNifeLang 的编译器,能成功地把任何合法的 CNifeLang 源代码编译为等价的目标程序。接着用 CNifeLang 写一个程序,它与你用 Golang 写的编译器功能完全相同,用 Golang 实现的编译器把这个程序编译完成,你就得到了一个用 CNifeLang 实现的 CNifeLang 编译器。因为这个程序的功能与用 Golang 写的编译器完全相同,所以你完全可以用这个编译器去编译 CNifeLang,于是 CNifeLang 实现了 自举。
-----节选自知乎,作者:CNife
拓展:
golang(go)是一种过程编程语言,可用于快速机器代码编译。它是一种静态类型的编译语言。它提供了并发机制,可以轻松开发多核和联网的机器级程序。它是快速,动态类型和解释语言;它提供对接口和类型嵌入的支持。
特点
语法简洁
Go 语言简单易学,学习曲线平缓,不需要像 C/C++ 语言动辄需要两到三年的学习期。Go 语言被称为“互联网时代的C语言”。Go语言的风格类似于C语言。其语法在C语言的基础上进行了大幅的简化,去掉了不需要的表达式括号,循环也只有 for一种表示方法,就可以实现数值、键值等各种遍历。
代码风格统一
Go 语言提供了一套格式化工具——go fmt。一些 Go语言的开发环境或者编辑器在保存时,都会使用格式化工具进行修改代码的格式化,这样就保证了不同开发者提交的代码都是统一的格式。
执行性能好
Go语言是一门编译型的语言,我们编写好的代码直接编译成服务器可以执行的二进制可执行文件。
开发效率高
Go语言虽然是一门编译型的语言,但是它内置了垃圾回收机制,降低了开发者的心智负担,使其拥有像Python、PHP等解释性语言的一样的开发效率。真正实现了开发效率和执行效率的完美结合。
天生支持并发
Go于2009年发布,当时多核处理器已经上市。Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。
推荐学习:Golang教程
以上就是golang底层是c语言吗?的详细内容,更多请关注其它相关文章!