赛尔号是什么语言写的,《赛尔号大电影7》点映升级

golang本身是用什么语言编写的?类似「xx语言是用什么语言实现的」这种疑问挺常见的,特别对于刚接触编程语言的人!记得我刚接触时,很困惑:这个语言是C实现的,那C是什么实现的?借此,咱们梳理下这个问题!编程语言的发展在计算机发展初期,编程直接通过机器指令和计算机交互,也就是机器语言,一堆0101,简直无法读无法改,所以发展出汇编语言 。
C语言是用什么编出的?

赛尔号是什么语言写的,《赛尔号大电影7》点映升级


首先答案是c语言是用c语言编写 。语言自举性一个语言能否自己编写自己实现自己编译,这叫自编译,自举性 。目前能实现自举性的语言没有几个,而自举性也就成了一个语言能否真实强大的标志 。一般来说图灵完备的语言,编译型语言,虚拟机语言可以实现自举 。而解释型语言基本上很难 。现代很多语言都没实现自举,Java(jvm),Javascript, python,ruby,lua,php,perl……一堆 。
这些语言编译器、解释器都是c语言 。一个语言能自举是他们社区和开发一直梦寐以求的事情,也是他们情怀和追求所在 。有一个语言为了实现自举成功,花了近20年,前年圣诞节才正式推出了第一个正式版本 。它就是perl6,perl的下一代语言 。perl6支持过程、OO、函数式三种程模式,支持虚拟机的语言(自己的虚拟机和jvm) 。
为了做好perl6,社区搞了一个功能启示录,把要实现的功能好点子都录进去 。后来一个日本人参考这个启示录自己实现了一个语言,这就有了ruby语言,但是ruby没有自举 。c语言的自举过程和交叉编译我在以前的回答中,曾说过c语言的来历:上世纪70年代,为了实现unix,教主Tomphson和Ritchie开发了B语言,但是b语言性能不行,编写也较繁琐,所以又在B语言的基础上开发出了现在的C语言 。
第一个C语言编译器的原型是用B语言或者混合B和汇编语言编写的 。采用部分实现功能,交叉编译方式实现 。先用B和汇编语言编写一个C语言的部分必须功能的编译器,再通过这个编译器,完成完整的C语言编译器 。详细过程如下:1、先编写一个只有C语言最基本功能编译器C0语言,用汇编语言编写出C0的编译器 。2、接着用C0实现比C0复杂,功能不完整的C语言子集C1语言,用C0编译出C1语言的编译器 。
golang本身是用什么语言写的?
赛尔号是什么语言写的,《赛尔号大电影7》点映升级


golang 本身是用什么语言编写的?类似 「xx 语言是用什么语言实现的」这种疑问挺常见的,特别对于刚接触编程语言的人!记得我刚接触时,很困惑:这个语言是 C 实现的,那 C 是什么实现的?借此,咱们梳理下这个问题!编程语言的发展在计算机发展初期,编程直接通过机器指令和计算机交互,也就是机器语言,一堆0101,简直无法读无法改,所以发展出汇编语言 。
汇编语言指令总体上和机器语言指令是一一对应的,但可读性有了很大加强!这两种语言称为低级语言 。20世纪50、60年代,涌现了各种高级语言,在70年代初,随着Unix的开发,C语言被开发出来,一直流行到现在 。之后编程语言不断发展,出现了面向对象编程语言、函数式编程语言,还分为动态语言和静态语言等等 。真是百花齐放百家争鸣 。
然而,编程语言的发展并没有就此止步 。在过去的十年内,又涌现出很多新的语言,如:Go、Swift、Rust、Kotlin、Dart 等等 。新语言有一些先天优势:没有历史包袱,可以吸纳这么多年,其他语言的优势,避免一些问题,同时有些是为了解决某一些问题而出现,也是为了解决之前语言的一些问题 。因此,这些新语言,关注度都不错 。

推荐阅读