文章1部分 再了解C语言

C语言的发展历史和主要特点

作为一门众所周知的计算机编程语言,C语言是谁发明的呢?它是怎样演进的?它有何特点?究竟有多少人在使用它?

1. C语言之父

C语言是1972年由美国贝尔实验室的计算机科学家Dennis Ritchie(丹尼斯·里奇)设计发明的。因此,Dennis Ritchie被誉为“C语言之父”(他已于2011年10月9日去世。享年70岁)。图1中的人物就是Dennis Ritchie。

图1 “C语言之父” Dennis Ritchie

Dennis Ritchie在哈佛大学学习物理学和应用数学,1967年进入贝尔实验室工作。作为计算机科学家,在他身上有非常多可贵的、值得我们学习的品行,如:第一,他对所做的事十分有兴趣;第二,跳出舒适区工作,不断挑战自己。第三,有创新思维,不拘泥于条条框框。第四,喜欢分享。不藏匿自己的核心技术。

Dennis Ritchie对计算机科学的贡献主要有下面几个方面:第一,作为“C语言之父”。他的最大贡献当然是发明了C语言;第二,1973年与Ken Thompson合作。把UNIX的90%以上用C语言改写。因此也被誉为“UNIX之父”;第三,1978年与Brian W. Kernighan一起出版了名著《The C Programming Language》(《C程序设计语言》),此书已被翻译成多种语言,成为C语言方面最权威的教材之中的一个。

基于Dennis Ritchie的杰出成就。1983年他与Ken Thompson一起获得了图灵奖。

1999年,Dennis Ritchie和Ken Thompson由于在发展C语言和Unix操作系统方面所做出的贡献一起获得了美国国家技术奖章。

2. 语言的演进

作为在国际上广泛使用的计算机语言,C语言的发展简史如图2所看到的。

图2 C语言的发展简史

3. C语言的特点

C语言是一种功能强大的、被广泛应用的面向过程的编程语言。可用于编写系统软件和应用软件。

C语言的主要特点如图3所看到的。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpoYW94aW9uZzEyMjc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" />

图3 C语言的主要特点

如图3,C语言的诸多特点使其越来越受到广大软件开发者的青睐,也使其成为了使用人数最多的计算机语言之中的一个。学习好C语言,对于深入学习计算机科学的其他课程都是非常有优点的。

C语言究竟有多少人在用呢?图4是2014年5月TIOBE编程语言排行榜(前20名)。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpoYW94aW9uZzEyMjc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" />

图4 2014年5月TIOBE编程语言排行榜

TIOBE世界编程语言排行榜展现的是世界上主要编程语言的流行趋势。排行榜的数据是每个月更新一次。

这份排行榜的数据的样本来源于互联网上富有经验的程序猿、著名的搜索引擎(如Google、Yahoo!等)、商业应用的keyword排名以及 Alexa(互联网首屈一指的免费提供站点流量信息的公司)上的排名等。

从图4能够看出,C语言位居排行榜的榜首。

因此,C语言使用得非常的广泛。

(欢迎訪问南邮BBS:http://bbs.njupt.edu.cn/)
(欢迎訪问重邮BBS:http://bbs.cqupt.edu.cn/nForum/index)

(本系列文章每周更新两篇,敬请期待。本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426。欢迎关注!)

版权声明:本文博主原创文章,博客,未经同意不得转载。

让你提前知道软件开发(24):C语言和主要特征的发展史的更多相关文章

  1. 让你提前知道软件开发(24):C语言和主要特征的历史

    文章1部分 再次了解C语言 C语言的发展历史和主要特点 作为一门众所周知的计算机编程语言,C语言是谁发明的呢?它是怎样演进的?它有何特点?究竟有多少人在使用它? 1. C语言之父 C语言是1972年由 ...

  2. (让你提前知道软件开发33):数据操纵语言(DML)

    文章2部分 数据库SQL语言 数据操纵语言(DML) 数据操纵语言(Data Manipulation Language,DML)包含insert.delete和update语句,用于增.删.改数据. ...

  3. 让你提前知道软件开发(22):shell脚本文件操作

    文章1部分 再了解C语言 shell脚本中的文件操作 [文章摘要] 编写shell脚本时,经常会涉及到对文件的操作,比方从文件里读取一行数据.向文件追加一行数据等. 完毕文件读写操作的方法有非常多,了 ...

  4. 高质量,高效率的多国语言软件开发(Web/PC/Mobile),使用接口约束/调用不同语言资源

    偶然间翻出了几年前写的一个小程序,把当时的资料整理整理分享一下. 当时为了给自己的软件实现多国语言功能,而开发的辅助工具:SE String Resource. 这是当时基于自己另一款 IDE 软件抽 ...

  5. APP定制开发:APP软件开发的语言和开发环境

    APP软件开发是移动互联网开发公司常开发的一种手机应用系统,对于刚刚进入APP软件开发领域的新手来说,选择什么编程语言和需要什么开发环境来开发APP软件是常遇到的问题.下面亿合科技小编来为大家分享下: ...

  6. 电脑小白学习软件开发-C#语言基础之循环重点讲解,习题

    写代码也要读书,爱全栈,更爱生活.每日更新原创IT编程技术及日常实用视频. 我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下. 本教程是基础教程,适合任何有志于学习软件开发的 ...

  7. BZOJ_1221_ [HNOI2001]_软件开发(最小费用流,网络流24题#10)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1221 n天,每天需要r个毛巾,用完以后可以洗,要么花fa洗a天,要么花fb洗b天,毛巾不够了可 ...

  8. 让你提前认识软件开发(23):怎样在C语言中运行shell命令?

    第1部分 又一次认识C语言 怎样在C语言中运行shell命令? [文章摘要] Linux操作系统具备开源等诸多优秀特性,因此在很多通信类软件(主流开发语言为C语言)中,开发平台都迁移到了Linux上, ...

  9. 让你提前认识软件开发(19):C语言中的协议及单元測试演示样例

    第1部分 又一次认识C语言 C语言中的协议及单元測试演示样例 [文章摘要] 在实际的软件开发项目中.常常要实现多个模块之间的通信.这就须要大家约定好相互之间的通信协议,各自依照协议来收发和解析消息. ...

随机推荐

  1. Art of Unit Test (1) - Breaking Dependency

    #!/usr/bin/env python # encoding: utf-8 import unittest """ the simplyest way to test ...

  2. 2 kNN-K-Nearest Neighbors algorithm k邻近算法(一)

    给定训练数据样本和标签,对于某测试的一个样本数据,选择距离其最近的k个训练样本,这k个训练样本中所属类别最多的类即为该测试样本的预测标签.简称kNN.通常k是不大于20的整数,这里的距离一般是欧式距离 ...

  3. 10.java.lang.FileNotFoundException

    java.lang.FileNotFoundException 文件未找到异常 当程序试图打开一个不存在的文件进行读写时将会引发该异常.该异常由FileInputStream,FileOutputSt ...

  4. Telnet RFC

    http://tools.ietf.org/html/rfc857 http://www.faqs.org/rfcs/rfc854.html 不错: http://blog.csdn.net/chao ...

  5. Linux LVM硬盘管理及LVM分区扩容

    LVM磁盘管理 一.LVM简介... 1 二. LVM基本术语... 2 三. 安装LVM... 3 四. 创建和管理LVM... 4 2. 创建PV.. 6 3. 创建VG.. 7 4. 创建LV. ...

  6. Nginx模块开发入门(转)

    前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...

  7. nova的wsgi介绍【WIP】

    有关openstack的所有的帖子. https://www.ustack.com/blog/openstack_hacker/#Nova_Workflow 网上已经很多的分析文章了: http:// ...

  8. Cookie、Session

    Cookie.Session Cookie 保存在浏览器端. 4kb 只能保存字符串,还不能是中文. 获取:Request.getCookies(); 设置时间:setMaxAge(); 小于零是浏览 ...

  9. 奔五的人,准备学习iOS开发

    这些年一直在java/web/android方面折腾,去年最终换成了apple的设备,本想就開始折腾iOS,却始终没能进入状态. 从今天開始,本人宣布:正式进入iOS/xcode 5的编程学习中,也希 ...

  10. MongoDB 启动异常

    今天启动MongoDB遇到异常状况 mongodb warning: 32-bit servers don't have journaling enable 解决方法: 删除数据库目录的.lock文件 ...