导航:首页 > 源码编译 > c编译器是怎么来的

c编译器是怎么来的

发布时间:2023-09-07 09:38:21

1. c语言编译器的概况

main() {int a,b,s; //定义变量printf(Enter two number a,b=?/n); //调用标准函数,要求用户输入两个数据scanf(%d%d,&a,&b); s=a+b; printf(s=%d/n,s); } 语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合着了着名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。
早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。

2. 第一个 C 语言编译器是怎样编写的

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)写的。

3. 第一个 C 语言编译器是怎样编写的

第一个C语言编译器
是先制定了简单的C语法后,用B语言写的
这个是C语言的前身。
当时B语言已经比较成熟 只不过 没有C强大
于是 发明了C语言
之所以叫C,其实也是因为在B基础上加一。

后续的C编译器 就都是用C写的了。

4. C语言是用什么编写出来的

C语言通过语言开发出来的。

C语言是Dennis Ritchie 在1972年通过Thompson的B语言的基础之上开发出来的。C是作为从事实际编程工作的程序的一种工具而出现的,所以其主要目标是成为一种有用的语言。同时, C 也是为编程人员开发的语言,这使得它成为当今人们首先的编程语言之一。

C已经成为最重要和流行的编程语言之一。它之所以得到发展,是因为人们尝试使用它后喜欢它。过去10年中,许多人从C转而使用更强大的C++语言,但C有其自身的优势,仍然是一种重要的语言,而且它还是通往C++的必由之路。

(4)c编译器是怎么来的扩展阅读

C语言特点

1、设计特性:C是一种融合了控制特性的现代语言,而我们已发现在计算机科学的理论和实践中,控制特性是很重要的。

2、高效性: C是一种高效的语言。 在设计上它充分利用了当前计算机在能力上的优点。C程序往往很紧凑且运行速度快。

3、可移植性:C是一种可移植语言。在一个系统上编写的C程序经过很少改动或不经修改就可以其他系统上运行。

5. 第一个 C 语言编译器是用什么语言编写的

第一个C语言编译器(简单的编译器)是用汇编完成的,后来的完整C语言编译器是用C语言编写的(也就是由简单的编译器编译)。

6. 什么是c编译器有什么用,可以用它来写C语言吗

所谓c语言编译器,就是把编程得到的文件,比如.c,.h的文件,进行读取,并对内容进行分析,按照c语言的规则,将其转换成系统可以执行的二进制文件。
其本质在于对文件的读入,分析,及处理。这些操作,c语言都是可以实现的。
所以用c语言来做c语言的编译器是完全可行的。
但是,历史上的第一个c语言编译器,肯定不是c语言写的,因为在没有编译器时,无法把c语言转换成可执行文件。
只要有了第一版其它语言的编译器,就可以用c语言写编译器了。
事实上,目前大多数的c语言编译器,都是用c语言写的。

7. 第一个C语言编译器是怎样编写的

任何一个功能
任何一个语言 都能实现
所以 关键的不在于语言 而在于 算法

C语言被人设计出来
设计了它的语法和规则
然后 根据这个规则,用B语言(Ken Thompson发明的B语言,而 B语言则源自BCPL语言。) 加汇编 编写了第一个C的编译器
没用多久
因为C语言更好用
于是 后续的C语言编译器 都是C语言自己写的了。

8. 最早的C语言编译器是什么做的

汇编。这真的是最早最早的。

准确的来说,这和编译器的开发有关,不用说太细,很麻烦怕你不懂。你现在假设第一个编译器是用会变写出来的,它的功能很简单,就是解释简单一种类似于C语言的高级语言,但是这种所谓的高级语言还没有完全拥有C语言的所有特性。只有比较简单核心功能,比如能把文本文件的高级语言转换成机器代码并且执行。

有了这个原型之后,就可以用这个编译器来解释简单C程序,就可以用C重写编写一个新的编译器,这样就有更多的C的功能。于是,从此之后就用现有的编译器解释更复杂的语言,用更复杂的语言写出更好的编译器,然后不断这样迭代。这确实是编译器的演变。

然后最后一个问题就是当一个新的CPU发明过后,怎么办,需要重写又从汇编开始写编译器吗?答案是不用。假设你有一个CPU A执行一些代码,你用汇编写了一个基础的C编译器,然后用C写出了更复杂的编译器,接受更复杂的C功能,然后不断循环演化。现在你有了CPU B,CPU B和CPU A执行两套完全不同的代码,那如何让CPU B的机器也可以变异C语言呢?因为现在A上面已经可以运行非常复杂的C语言程序了,所以你可以在A上面开发一个编译器把C语言程序转化为CPU B的执行代码。然后用这个程序,直接编译你的C语言编译器,再把这个程序转换到有B命令集的电脑上面,这样你就开发出了B电脑需要的C语言编译器。

所以除非你真的是活在非常早起的人类。否在现在的编译器基本上都利用这种原理直接编译已经用C语言或者其它高级语言写好的代码来产生新的编译器就行了。理论上可以只使用C语言来开发C的编译器,不过处于一些历史原因和底层效率等因素的考量,部分代码还是使用汇编来实现的。

我举得不过是一个例子,不一定是真实的C语言编译的进化,何况有这么多不同的C语言编译器,每一个的发展历史都有小的不同。但是基本上都是利用了这种编译器编译新的编译器的思想来实现了。而这样回溯回去,最早的编译器只能使用汇编来些。而其实最早的汇编语言的编译器就只能使用机器语言来写了。不过都是先处理简单的转换任务,有了这个核心功能过后,就可以写程序转换更复杂的语法。然后越来越复杂。就有了各种各样的高级语言编译器了。

9. c语言编译器是用什么于语言写的

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

10. C语言编译器是什么

C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。[2]
二十世纪八十年代,美国国家标准局为了避免各开发厂商用的C语言语法产生差异,给C语言制定了一套完整的美国国家标准语法,称为ANSI C。作为C语言最初的标准。[3]2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言编译器普遍存在于各种不同的操作系统中,例如Microsoft Windows, Mac OS X, Linux, Unix等。C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。

例:
#include <stdio.h>

int main() {
printf("Hello,world!");

return 0;
}

编译运行将输出: Hello,world!

阅读全文

与c编译器是怎么来的相关的资料

热点内容
安卓实况图片怎么拍成抖音视频的 浏览:542
手机详情图片压缩 浏览:953
checkpoint加密 浏览:531
哪个app可以下载失忆症 浏览:758
adc是什么意思单片机 浏览:1
通达信捕捞指标源码 浏览:962
数据管理系统源码 浏览:984
奥迪工程师编程 浏览:964
单片机烧写器和下载线区别 浏览:898
java编程教材 浏览:862
哪个app可以p鬼畜表情包 浏览:310
加密狗服务器克隆 浏览:750
程序员秒开游戏 浏览:932
云服务器怎么做淘宝 浏览:450
100加六个点的算法 浏览:323
基于单片机的设计项目 浏览:42
民法物权王泽鉴pdf 浏览:723
pdf压缩器免费版mac 浏览:548
北京订生日蛋糕的app哪个好 浏览:68
移动硬盘中的文件夹怎么删除 浏览:293