一直想写一篇自己的博客,但受限于目前的知识水平,无法像大牛们一样出一篇高质量文章,索性就来探讨一下这门伟大语言——C语言的前世今生吧。

文章目录

  • 前言
  • 一、C语言发展史
    • 1. C语言诞生前夕
      • 1.1 BCPL语言
      • 1.2 B语言
    • 2. 致敬先辈——伟大的C语言之父
      • 2.1 C语言的发展
  • 二、为什么是C语言
    • 三、 C语言的未来
      • 1. C语言过时了吗
  • 总结


前言

任何一种新事物的出现都不是来自于偶然,而是时代所驱使的必然结果。

如果把编程世界比作一栋高楼大厦,那么C语言便是这座大厦的地基,所谓C生万物便是这个道理,这也是为何学会了C语言,学Java,学Python便能快速入手。


一、C语言发展史

1. C语言诞生前夕


从图中可以看出,C语言诞生于上世纪70年代初,且是在B语言的基础上发展而来,说到这里,我们先来介绍一下C语言的两位先祖。

1.1 BCPL语言

Basic Combined Programming Language(BCPL),是一种早期的高级语言。1967年由剑桥大学的计算机科学家马丁·理察德(英语:Martin Richards,1940年7月21日-)在CPL语言上改进而来,不过BCPL没有使用太长时间便被取代。

1.2 B语言

1969年前后美国贝尔实验室的电脑科学家肯尼斯·蓝·汤普森(Kenneth Lane Thompson)基于BCPL发明了B语言——C语言的前身。
而且他是Plan 9操作系统的创造者和开发者之一。与丹尼斯·里奇(同为1983年图灵奖得主。

至此,C语言的先祖已经登上历史舞台。辩证法告诉我们:事物的发展总是从量变开始,量变是质变的必要准备,质变是量变的必然结果,这是无数事实已经证明的真理。

2. 致敬先辈——伟大的C语言之父


丹尼斯·麦卡利斯泰尔·里奇(英语:Dennis MacAlistair Ritchie,1941年9月9日-2011年10月12日),美国计算机科学家。C语言之父,UNIX之父。曾担任朗讯科技公司贝尔实验室下属的计算机科学研究中心系统软件研究部的主任一职。1978年与布莱恩·科尔尼干(Brian W. Kernighan)一起出版了名著《C程序设计语言(The C Programming Language)》。此书已翻译成多种语言,被誉为c语言的圣经(可惜我学的是谭老的红皮书)

克尼汉这样评价Dennis:牛顿说他是站在巨人的肩膀上,如今,我们都站在里奇的肩膀上。

C语言横空出世后,便迅速在世界上传播开。从贝尔实验室到全世界的大学,也到了微软,一个在80年代异军突起的软件公司。一直到今天,我们也依旧在使用C语言,并且这门语言常年霸占在各大编程语言的榜首。正所谓吃水不忘挖井人,里奇值得人们去纪念。

2.1 C语言的发展

1973年,C语言已经基本完备,并在各大高校和研究机构的使用中不断发展,C语言及其标准经过若干次迭代之后,就成了今天大家看到的样子。其标准中指定了很多C标准库,而不同的系统都有自己不同的代码实现。

二、为什么是C语言

简单来说(目前自己的认知):
1、他是结构化设计语言;

2、运算符多;

3、数据结构丰富;

4、操作系统配用起来非常方便;

5、程序执行效率高;

6、可移植性好;

三、 C语言的未来

1. C语言过时了吗

经过几十年的风雨洗礼,C语言也踏入了老年阶段(按照人类寿命算的话),不少人觉得C语言已是暮年(将近50岁),而且想学懂也是非常的困难,加上被如今Python等热门语言抢了风头,上到高校,下到小学,全民皆可Python,心里会产生这样的疑问:C语言过时了吗,引用网上一组图片进行形象对比

“廉颇老矣,尚能饭否”?

可是,下面的数据告诉你,C语言宝刀未老,并且依旧坚挺,下图为今年最新编程语言排行榜:

可以看到,在今年最新的排行榜中,C语言排在第二位,并非是大家以为的过时了,最后的最后,引用一位大佬说的话:

只要计算机还是基于冯诺依曼体系结构(特意去查了下这是个什么玩意),芯片还是基于物理制程。那么,都会有一片C的天空。因为,她知道一个最接近天空的地方(C是最接近汇编、机器语言的高级语言之一)。

总结

不知不觉就到了总结阶段了,写到这里,真的彷佛看见了C的一生- ̗̀(๑ᵔ⌔ᵔ๑)。

千里之行,始于足下。——老子《老子》

每一步的积累,都是一个脚印一个脚印踏出来的,做任何事,其实都不应该贪图快捷,无论学编程,还是做事,基础永远是最重要的,可基础却是一个长期拉锯战,并非一朝一夕便能见得成效,希望此刻伏案的你能继续坚持下去!
下次讨论一下“Hello World”的起源?

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


int main()
{
	printf("\n");
	printf("\n");
	printf("Hello World!\n");
	printf("\n");

	return 0;
}代码片

更多推荐

C语言的前世今生