C语言是用哪个语言开发出来的?
发布网友
发布时间:2022-04-23 13:13
我来回答
共6个回答
热心网友
时间:2022-05-11 10:38
展开1全部参考 Dennis M. Ritchie 写的 The Development of the C Language:Chistory,C 语言诞生的基本过程就是 Ken Thomson 不满意 BCPL,于是设计了 B 语言,并且用 BCPL 为 B 语言写了一个编译器,然后从这个编译器开始自举写新的 B 语言编译器。贝尔实验室的众人在 PDP-7 上用 B 语言写了各种各样的东西后又不满意 B 语言了,于是 1971 年 DMR 开始在新买的 PDP-11 上用 B 给 B 写扩展,称之为 NB (new B,此处省略吐槽若干),扩展着扩展着离 B 的画风越来越远了,就取了一个新名字变成了一门新语言—— C 语言。 1973 年夏天他们用手头的编译器和语言给 PDP-11 重写了一个 Unix Kernel。C 语言大约就是这个时期成型的。
所以,可以说第一个 C 语言的编译器是用 B 语言,或者说是扩展过的 B 语言(NB)写的。因为是一边改进语言一边用改进了的编译器这样滚雪球写出来的,也可以看成是 C 语言写的?毕竟 DMR 也说了,很难确定什么时候 C 自己变成了一门新语言……
热心网友
时间:2022-05-11 11:56
其实现在的语言是不是还是用当初的B语言作为基础制作的编译器这很难说...
只要根据编译原理的知识,你可以用比C还要高级的语言比方说C++,甚至C#写C的编译器 ,编译的一些原理就那些,关键是越高级的语言执行效率越低罢了。。
有一门课叫编译原理,其实也可以看成是一个人工智能,就是关于怎样将一篇东西分句分词,然后看相互之间的关联,优化代码,消除重复,再变成机器码的一个过程,其实这样说好像很简单,但是光分词就涉及到很深奥的东西,比方说有限自动机,无限自动机什么的。。。
其实也没有规定说不能拿高级语言写低级语言的编译器,也没说一定要用最低级的语言如汇编写高级语言的编译器效率才高,没这个说法,看写编译器人的智商和能力。就好像金庸小说里面说的,独孤求败前辈用草木万物皆可为剑,而菜鸟你给他什么剑也不可能赢独孤前辈一样。。。。。
其实那高级语言写也是蛮快的。。。用低级语言写编译器那就痛苦多了。。。
其实电脑将自然语言变成二进制是一个非常复杂的过程,而且中文的编程语言也有,不过看上去其实跟C++很像,各种原因你懂的。
其实个人看法是,中文编程语言出发点好,但是实际使用麻烦,指令还要在输入法的基础上输入,很难实现自动提醒功能,甚至是现在流行的模糊查询提醒代码功能,比方说在苹果上输入关键字UITV就能输出UITextView这个类的名字,而中文呢?搞不好要输入界面。。。增加输入量。
而且第二最重要的是老外不懂英语,现在流行开源,代码共享,本质上就是将一些经常写好的代码封装起来让大家用,没必要有些功能每次都重写一遍,就好像做车轮子,大家都用同样的模板去做,没必要每做一次轮子就要开一个新的模板一样。。如果用存中文,相信国人做的开源项目很难在外国流行,外国的也很难进来。。。
热心网友
时间:2022-05-11 13:30
汇编是用机器码开发出来的。
然后简单点的汇编实现复杂的汇编编译器。
最初的高级语言编译器,是用汇编来写的。
然后再用简单的高级语言编译器一点点完善自己。
不过还是有高手用汇编做高级语言编译器。
所以不能确定编译器是用什么写出来的,只能去问那些产编译器的厂家。
例如VC,可能只有微软才知道它是用什么写的。追问哪个汇编编译器比较好用?
热心网友
时间:2022-05-11 15:22
美国追问我知道美国
热心网友
时间:2022-05-11 17:46
下面的答案说的对,语言就是编译器的外接口,编译器写的好,编译出来的就程序快,好。也不是说每种编译器都好。也就是说不一定每种编译器编译的C语都一样的快。
举个例吧。C语言就是材料。机器就是把材料打造成产品的,如汽车。都是一样的材料,为什么打造的同一种产质量就不同呢。。这就是这个道理
热心网友
时间:2022-05-11 20:28
c语言本来就是一种语言,那来用哪个语言开发这一说追问就像是一个人总有老爸老妈吧?