在编译型语言中,软件是由编译器编译而来的,编译器自身也是软件,那编译器又是如何来的呢?咋一看这个问题,感觉又要掉入“鸡生蛋,蛋生鸡”这样无止尽的循环中了。下面以C语言编译器为例,介绍下C编译器是什么来的。
C语言之父文章源自微观生活(93wg.com)微观生活-https://93wg.com/2751.html
C语言其实不是第一门编程语言,在它以前,已经有其他编程语言存在了,例如B语言、Fortran,汇编等。C语言的设计参考了B语言,历史上第一个C编译器是使用B语言编写的,乃至有多是由B+汇编混合编写。在这里咱们需要明确一点,C语言的发展其实不是一挥而就的,而是阅历了多年的完美以及修改才被推出(C语言出生于1969 - 1973年间,由贝尔试验室的汤普逊(Ken Thompson)以及里奇(Dennis Ritchie)二人共同发明,正式成型是在1973年。)。一样,C编译器也是经由逐次迭代更新才终究构成具备完全功能的C编译器。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2751.html
C语言拥有自举特性,自举的意思是该语言的编译器可以编译出编译该语言的编译器。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2751.html
是否有点绕?话说我自己都差点没读懂自己写的话[大笑]。说简单一点就是该语言不需要借助其他语言就能够编译出给自己用的编译器。然而,第一个编译器必需是通过其他语言编译出来的(先有鸡),有了初版编译器以后,才能实现编译器的自我迭代。在用B语言编译出第一个C编译器后,应用C语言的自举特性,就能够像滚雪球同样,由最初的一个只具备基本功能的C编译器不断迭代,开发出支撑更多特性的C编译器,并终究构成咱们现在使用的版本。如果你有兴致,可以在互联网上下载到最新的gnu C工具链源码并自行编译出gcc编译器。除了了初版C编译器之外,C编译器的源码早已经脱离了B语言,使用C语言自身编写了。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2751.html
gcc源码下载地址文章源自微观生活(93wg.com)微观生活-https://93wg.com/2751.html
知道了C编译是如何来的,如果你还好奇B语言编译器是如何来的,那就是用汇编写出来的。汇编器如何来的,是用机器语言写出来的。套用道家的说法:机器生汇编,汇编生B,B生C,C生万物。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2751.html
以上就是微观生活(93wg.com)关于“你是不是好奇,第一个C语言编译器是如何来的”的详细内容,希望对大家有所帮助!文章源自微观生活(93wg.com)微观生活-https://93wg.com/2751.html 文章源自微观生活(93wg.com)微观生活-https://93wg.com/2751.html
评论