文章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. FAQ:Python中*args和**agrs的区别

    python提供了两种特别的方法来定义函数的参数: 1. 位置参数 *args,  把参数收集到一个元组中,作为变量args   >>>def show_args(*args):   ...

  2. 解决Oracle 11gR2 空闲连接过多,导致连接数满的问题

    今天又遇到了11gR2连接数满的问题,以前也遇到过,因为应用那边没有深入检查,没有找到具体原因,暂且认为是这个版本Oracle的BUG吧. 上次的处理办法是用Shell脚本定时在系统中kill  v$ ...

  3. a中国天气网pi(json格式)

    http://m.weather.com.cn/data/101050101.html 此接口的回报格式例如以下 { "weatherinfo": { "city&quo ...

  4. C++ ofstream和ifstream

    ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O, ...

  5. CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\921bbfc4\ca7cf42\App_Code.fu98jwep.dll”--“拒绝访问。 ”

    在本地开发环境没问题,但是发布到服务器出现:未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Fil ...

  6. Oracle中的日期和字符串互相转换

    转载出处:http://blog.sina.com.cn/s/blog_44a005380100k6rv.html TO_DATE格式(以时间:2007-11-02   13:45:25为例)    ...

  7. .Net平台-MVP模式初探(一)

    为什么要写这篇文章 笔者当前正在负责研究所中一个项目,这个项目基于.NET平台,初步拟采用C/S部署体系,所以选择了Windows Forms作为其UI.经过几此迭代,我们发现了一个问题:虽然业务逻辑 ...

  8. vue.js自定义指令入门

    Vue.js 允许你注册自定义指令,实质上是让你教 Vue 一些新技巧:怎样将数据的变化映射到 DOM 的行为.你可以使用Vue.directive(id, definition)的方法传入指令id和 ...

  9. C++_基础_C与C++的区别2

    内容: (1)C++中的函数 (2)动态内存 (3)引用 (4)类型转换 (5)C++社区对C程序员的建议 1.C++中的函数1.1 函数的重载(1)重载的概念 在同一个作用域中,函数名相同,函数的参 ...

  10. Linux学习之linux目录

    文件系统的类型 LINUX有四种基本文件系统类型:普通文件.目录文件.连接文件和特殊文件,可用file命令来识别. 普通文件:如文本文件.C语言元代码.SHELL脚本.二进制的可执行文件等,可用cat ...