为什么c语言的编译器可以用c语言来写?

如题所述

所谓C语言编译器,就是把编程得到的文件,比如.c,.h的文件,进行读取,并对内容进行分析,按照C语言的规则,将其转换成系统可以执行的二进制文件。
其本质在于对文件的读入,分析,及处理。这些操作,C语言都是可以实现的。
所以用C语言来做C语言的编译器是完全可行的。

但是,历史上的第一个C语言编译器,肯定不是C语言写的,因为在没有编译器时,无法把C语言转换成可执行文件。
只要有了第一版其它语言的编译器,就可以用C语言写编译器了。
事实上,目前大多数的C语言编译器,都是用C语言写的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-07
我是这样想的,第一个编译器肯定不是C语言,但是有了C编译器就可以编译C语言啦,编译器也是程序对吧,二进制代码,可以运行,然后又用C语言写更好的编译器用现在的编译器编成可执行代码。我是这样想的呵呵,好比地球上有了第一个生命,然后这个生命又孕育出了新的生命。
第2个回答  推荐于2017-09-22
其实语言 都是为了“生产”的需要而不断演化而来的,语法只是一系列规则,在没有C语言之前还有很多编程语言啊。(而C语言的诞生是为了编写unix操作系统)所以你可以这样想,第一个C语言编译器使用其他神马语言写的 然后经过不断的演化,C成熟后就可以生产任何程序了,当然也包括编译器了。本回答被提问者和网友采纳

为什么c语言的编译器可以用c语言来写?
其本质在于对文件的读入,分析,及处理。这些操作,C语言都是可以实现的。所以用C语言来做C语言的编译器是完全可行的。但是,历史上的第一个C语言编译器,肯定不是C语言写的,因为在没有编译器时,无法把C语言转换成可执行文件。只要有了第一版其它语言的编译器,就可以用C语言写编译器了。事实上,...

什么是c编译器?有什么用,可以用它来写C语言吗?
其本质在于对文件的读入,分析,及处理。这些操作,c语言都是可以实现的。所以用c语言来做c语言的编译器是完全可行的。但是,历史上的第一个c语言编译器,肯定不是c语言写的,因为在没有编译器时,无法把c语言转换成可执行文件。只要有了第一版其它语言的编译器,就可以用c语言写编译器了。事实上,...

c语言编译器是用什么于语言写的
第一个C语言编译器应该是用汇编写的,但是第一个成熟的C语言编译器应该是由汇编和C语言共同写的。编译原理讲到了“自举编译器”。大意就是先用底层语言(应该是汇编)写一个能运行,但效率极低的C语言编译器(底层语言不好优化),有了C语言的编译器以后,就可以用C语言好好写一个编译器了,用之前...

编译器使用C语言的好处
1、简洁紧凑、灵活方便2、运算符丰富3、数据类型丰富4、表达方式灵活实用5、允许直接访问物理地址,对硬件进行操作6、生成目标代码质量高,程序执行效率高7、可移植性好8、表达力强C语言有丰富的数据结构和运算符包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。...

c语言编程用什么语言?
首先c语言是一种语言, 是人们约定的一种编程方式, 就像英语, 法语一样, 是一种语言, 是一种约定的规范.所谓什么写的, 应该是指c语言的编译器吧.编译器的作用就是把编程语言变成机器语言, 也就是把"代码"(如.c文件)变成计算机可读的机器语言文件. 所以编译器就是一个程序, 把一种文字转化为另...

C语言这么厉害,它自身又是用什么语言写的?编写过程被称为自举
OK, 这么一层层上来,终于得到了一个用C语言写的编译器, 真是够麻烦的。到这个时候,之前那个汇编写的C语言编译器就可以抛弃了。当然,如果在C语言之前,已经出现了别的高级语言,例如Pascal,那就可以用Pascal来写一个C语言的编译器。第一个Pascal的编译器据说使用Fortran写的。而作为第一个高级...

C语言有什么用
编译器或解释器,由于C语言效率高的特点,很多编译器也选择的使用C语言来开发。系统服务,由于操作系统都提供了C语言的API,并且C语言的执行效率比较高,所以用C语言来写系统服务是最适合不过的。应用软件,由于C语言没有成熟的开发框架,所以不适合开发大型应用程序。但也有一些对效率要求比较高的程序使用...

C语言本身是用什么语言开发的?汇编?
如果问的是C语言编译器的话,第一个C语言的编译器应该是汇编开发的,但是以后就可以用C语言开发C语言编译器了,编译这东西并不存在想当然的“大鱼吃小鱼”的规则,用理论上用JAVA来开发C语言的编译器都是可以的,但是JAVA运行在JVM上而JVM又是C++开发的,绕了一圈,所以用JAVA这种虚拟机语言开发编译器...

本科独立用C语言完成没有优化的C语言编译器属于什么水平?
三、C语言编译器其实算是有丁点难,主要是因为细节太多,如果要真正实现一个能完整编译开源项目比如编译libc 的c语言编译器,很少人能做到,大部分大学生写的c语言编译器只能编译基础的c代码 ,比如我,要完成一个完整的支持全部c语言能编译libc的c编译器需要做很多工作,我并没有持续下去而是更专注后端...

c语言的ide?这个ide从何而来?
C语言不靠IDE,IDE是开发环境,你说的意思应该是编译器。C语言的编译器当然是用别的语言的编译器写的,世界上的第一个编译器是用汇编写的,花了18年时间,有兴趣可以去看编译原理

相似回答