编程语言自举
C语言本身是用什么语言写的?
既然你能提出这个级别的问题,说明你应该学过C。既然你能提出这个级别的问题,说明你没学过编译原理(或者全还给老师了[捂脸],容我不厚道一下下)。
你所谓的"C语言",准确来说,指的是能把C语言程序翻译成机器指令程序的"编译器"程序。
先用汇编写一个极小的原始编译器(AC),能编译最简单的C语法。然后用该原始编译器AC编译一个最简单的C编译器(CC1)。然后用CC1编译一个稍微复杂一点的C编译器(CC2)。最终,像滚雪球一样,C语言就把一个拥有完全编译功能的C编译器给编译出来了。
推荐资料:陈火旺老师的经典教材《编译原理》,开篇讲的就是这个问题。
C语言本身是基于英语的。C语言的创始人丹尼斯里奇是美国人,哈佛大学毕业。
比如C语言里的数据定义:int出自于integer;比如结构语句:if... else... 等等。
C语言本身是用汇编语言和其他高级语言(如B语言)编写的。C语言最初是由贝尔实验室的Dennis Ritchie在20世纪70年代开发的,他使用了汇编语言来编写一些底层代码,然后使用B语言来编写更高级别的代码。之后,Ritchie和他的同事们将B语言改进为C语言,并用C语言重新实现了Unix操作系统。因此,可以说C语言是由汇编语言和B语言共同演化而来的。
最早的计算机语言是机器语言,直接面向计算机硬件。虽然指令不多,但实现特定任务需要编制复杂的程序。由于缺乏存储系统,程序存储于纸带上。随着存储介质的发展和程序模块化演变,计算机语言由低级向高级不断发展。尤其是视窗操作系统的出现,使得计算机对用户更加友好。
是用C语言编写的。
这里有一个概念,就是编程语言的自举。
自举(bootstrapping)字面理解就是自己能把自己给举起来,换做编程语言来讲就是,自己编译自己。也就是C语言能通过C语言自己编写自己的编译器。
完成自举通常需要3-4个步骤。
1、创建自举编译器环境。
2、编译自举编译器。
3、通过自举编译器编译完整的编译器。
4、通过第三步里面的完整的编译器编译完整的编译器。
第四步得到的编译器就是一个自举编译器。
那么问题来了,第2步中的编译器是什么语言写的呢,是这么来的呢?
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/10373.html