让你提前知道软件开发(24):C语言和主要特征的历史
文章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语言和主要特征的历史的更多相关文章
- 让你提前知道软件开发(24):C语言和主要特征的发展史
文章1部分 再了解C语言 C语言的发展历史和主要特点 作为一门众所周知的计算机编程语言,C语言是谁发明的呢?它是怎样演进的?它有何特点?究竟有多少人在使用它? 1. C语言之父 C语言是1972年由美 ...
- (让你提前知道软件开发33):数据操纵语言(DML)
文章2部分 数据库SQL语言 数据操纵语言(DML) 数据操纵语言(Data Manipulation Language,DML)包含insert.delete和update语句,用于增.删.改数据. ...
- 让你提前知道软件开发(22):shell脚本文件操作
文章1部分 再了解C语言 shell脚本中的文件操作 [文章摘要] 编写shell脚本时,经常会涉及到对文件的操作,比方从文件里读取一行数据.向文件追加一行数据等. 完毕文件读写操作的方法有非常多,了 ...
- 高质量,高效率的多国语言软件开发(Web/PC/Mobile),使用接口约束/调用不同语言资源
偶然间翻出了几年前写的一个小程序,把当时的资料整理整理分享一下. 当时为了给自己的软件实现多国语言功能,而开发的辅助工具:SE String Resource. 这是当时基于自己另一款 IDE 软件抽 ...
- APP定制开发:APP软件开发的语言和开发环境
APP软件开发是移动互联网开发公司常开发的一种手机应用系统,对于刚刚进入APP软件开发领域的新手来说,选择什么编程语言和需要什么开发环境来开发APP软件是常遇到的问题.下面亿合科技小编来为大家分享下: ...
- 电脑小白学习软件开发-C#语言基础之循环重点讲解,习题
写代码也要读书,爱全栈,更爱生活.每日更新原创IT编程技术及日常实用视频. 我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下. 本教程是基础教程,适合任何有志于学习软件开发的 ...
- BZOJ_1221_ [HNOI2001]_软件开发(最小费用流,网络流24题#10)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1221 n天,每天需要r个毛巾,用完以后可以洗,要么花fa洗a天,要么花fb洗b天,毛巾不够了可 ...
- 让你提前认识软件开发(23):怎样在C语言中运行shell命令?
第1部分 又一次认识C语言 怎样在C语言中运行shell命令? [文章摘要] Linux操作系统具备开源等诸多优秀特性,因此在很多通信类软件(主流开发语言为C语言)中,开发平台都迁移到了Linux上, ...
- 让你提前认识软件开发(19):C语言中的协议及单元測试演示样例
第1部分 又一次认识C语言 C语言中的协议及单元測试演示样例 [文章摘要] 在实际的软件开发项目中.常常要实现多个模块之间的通信.这就须要大家约定好相互之间的通信协议,各自依照协议来收发和解析消息. ...
随机推荐
- Java自学资料——线程
[转]传智播客成都java培训中心学员笔记. 线程: static int MAX_PRIORITY 线程能够具有的最高优先级. static int MIN_PRIORITY 线程能够具有的最低优先 ...
- Html A标签中 href 和 onclick用法、区别、优先级别
原文:Html A标签中 href 和 onclick用法.区别.优先级别 如果不设置 href属性在IE6下面会不响应hover.双击后会选中标签的父容器而非这个一a标签(IE下都存在这一问题). ...
- android系统reboot
这里所说的reboot指的是软件重启,并非断电重启.我们知道android系统的几个功能,比如:回复出厂设置.OTA升级等都需要重启系统,而且重启后要进入recovery模式,有的手机还带有重启进入f ...
- 推测的手机型号和cpu模型
<span style="font-size:18px;">推断手机型号:</span> <span style="font-size:18 ...
- Oracle历史记录
请问如何查询ORACLE的历史操作记录!!!!!------解决方案-------------------- 有一个专门存储操作的数据库表..select t.SQL_TEXT, t.FIRST_LO ...
- css实现自适应屏幕高度
body,html{ margin:0px; height:100%; }
- POJ 1696 Space Ant(点积的应用)
Space Ant 大意:有一仅仅蚂蚁,每次都仅仅向当前方向的左边走,问蚂蚁走遍全部的点的顺序输出.開始的点是纵坐标最小的那个点,開始的方向是開始点的x轴正方向. 思路:从開始点開始,每次找剩下的点中 ...
- Android编程心得-Service数据绑定初步
在Android里,Service的数据绑定是一种重要的用法,我们知道Service与Activity一样是运行在当前应用进程的主线程里面的,他们之间交互的方式有多种,下面我来介绍一下如何使用数据绑定 ...
- contextmenu
void Loaded(object sender, RoutedEventArgs e) { ContextMenu contextMenu = new ContextMenu(); context ...
- HDU 4982 Goffi and Squary Partition(推理)
HDU 4982 Goffi and Squary Partition 思路:直接从全然平方数往下找,然后推断是否能构造出该全然平方数,假设能够就是yes,假设都不行就是no.注意构造时候的推断,因为 ...