文章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. Redis在win7上的安装与可视化应用

    Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...

  2. jenkins 安装 SVN Publisher 后向 svn 提交代码报错: E170001: Authentication required for...

    问题描写叙述 安装并启动 jenkins 后,加入了 SVN Publisher 插件,然后在构建任务的"构建后操作"操作中加入了"Publish to Subversi ...

  3. Akka边学边写(3)-- ByteString介绍

    Akka的IO层设计能够參考这篇文档,本文简介一下ByteString的设计. Immutable消息 Actor之间是通过消息沟通的.但为了避免同步问题,消息必须是Immutable. 因此.Akk ...

  4. Android ImageButton Example 图片按钮

    Android ImageButton Example 图片按钮 使用“android.widget.ImageButton” 展现一个具有背景图片的按钮 本教程将展现一个具有名字为 c.png背景图 ...

  5. 如何解决Windows8.1(32bit&64bit)下Cisco VPN Client拨号时报442错误的问题

    Cisco VPN Cient大多数网络管理员.技术支持project最流行的教师和最终用户VPNclient一间.对于外部网络访问内部网络,技术类人员. 随着Windows8.1的推出.Cisco ...

  6. Ansj配置指南!

    =.= 折腾死 ①你想要http://maven.ansj.org/org/ansj/ansj_seg/找一个尽可能高的版本号,比方2.0.7,点进去之后找到相应的jar,比方ansj_seg-2.0 ...

  7. 【Android开发经验】Android举UI设计经验

    转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 1.Android眼下的主流设备分辨率为480×800.720×1280.1080×1920,单位是像素.在 ...

  8. mac开启22port

    mac开启22port 选择System prefrence -> sharing , 将remote login打开 測试是否打开 import socket s = socket.socke ...

  9. iOS UIWebView 载入https 网站出现NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL,

    今天在载入https网站的时候遇到例如以下的错误问题.所以对自己之前写的iOS内嵌webview做了一些改动,能够让它载入http网站也能够让它载入https网站. 以下是我载入https网站的时候出 ...

  10. repo总结

    repo刚google使用Python脚本写通话git脚本.主要用于下载.管理Android工程仓库. 1. 下载 repo 的地址: http://android.git.kernel.org/re ...