C语言的起源

C语言是贝尔实验室的Dennis Ritchie于1969年~1973年间创建的。美国国家标准学会(American national standards institute,ANSI)在1989年颁布了ANSI C的标准,后来语言的标准化成了国际标准化组织(International Standards Organization,ISO)的责任。这些标准定义了C语言和一系列函数库,即所谓的C标准库。Kernighan和 Ritchie在他们的经典著作中描述了ANSI C,这本著作被人们满怀感情地称为“K8R”。用Ritchie的话来说,C语言是“古怪的、有缺陷的,但同时也是一个巨大的成功”。为什么会成功呢?

  • C语言与Unⅸ操作系统关系密切。 C从一开始就是作为一种用于Unix系统的程府语言开发出来的。大部分Unix内核(操作系统的核心部分),以及所有支撑工具和函数库都是用C语言编写的。20世纪70年代后期到80年代初期,Unix风行于高等院校,许多人开始接触C语言并喜欢上它。因为Unix几乎全部是用C编写的,它可以很方便地移植到新的机器上,这种特点为C和Unix赢得了更为广泛的支持。
  • C语言小而简单。 C语言的设计是由一个人而非一个协会掌控的,因此这是一个简洁明了、没有什么冗赘的设计。K&R这本书用大量的例子和练习描述了完整的C语言及其标准库,而全书不过261页。C语言的简单使它相对而言易于学习,也易于移植到不同的计算机上。
  • C语言是为实践目的设计的。C语言是设计用来实现Unix操作系统的。后来其他人发现能够用这门语言无障碍地编写他们想要的程序。

C语言是系统级编程的首选,同时它也非常适用于应用级程序的编写。然而,它也并非适用于所有的程序员和所有的情况。C语言的指针是造成程序员困惑和程序错误的一个常见原因。同时,C语言还缺乏对非常有用的抽象的显式支持,例如类、对象和异常,像C++和Java这样针对应用级程序的新程序语言解决了这些问题。

参考资料:

  1. 深度理解计算机系统(P2,3)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

入门 | 一小时向非程序员介绍 R 编程语言

来源 | 伯乐在线 我妹妹正在念大四,主修社会学。她刚刚签了下个学期一份不错的分析员工作,对方告诉她工作中要用到 R 编程语言。她让我在寒假时教教她,我欣然同意...

1776
来自专栏Crossin的编程教室

【每周一坑】3道练习题

如题图所示,今天把论坛(crossin.me)的服务器迁移到一个很萌的云服务上,速度还可以。欢迎大家常来。 这里再次感谢 aresli 同学提供的服务器,让论坛...

33617
来自专栏编程微刊

初学者路径规划 | 人生苦短我用Python 纵观编程趋势 Python基础Python高级编程数据库web前端框架和服务器爬虫数据分析

1465
来自专栏数林觅风——数据科学思维导图笔记

7 幅思维导图:Python 常用标准库及拓展知识

1052
来自专栏程序员互动联盟

【编程指导】新程序员必须具备的十个基本技能

没有几个学生能100%为自己的第一份真正的工作做好准备。如果你不想成为其中之一,请学学以下这10项无需手把手指导就能学会的基本技能吧! 1、版本控制系统(VCS...

34113
来自专栏生信技能树

生信技巧第06课-你可能需要学一点编程

不知不觉就第6讲了,本次视频还是有干货的,毕竟是某人花了50块钱找我给他录制的,你看完就相当于赚了50块钱哦!

993
来自专栏Crossin的编程教室

【每周一坑】特殊的生日

好吧,我在跳票的道路上又双叒叕前进了一步……今天终于厚着脸皮来更新【每“周”一坑】啦。感谢在后台孜孜不倦催促我的同学们。 在出题前,先插两句: 上次关于 Pyt...

26111
来自专栏云飞学编程

想学习Python爬虫,但是找不到电子书或者不知道找什么资料

第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、i...

684
来自专栏企鹅号快讯

毕业的大学生生、想转行的人或想学习编程的学Python、C 还是Java?

刚毕业的大学生生、想转行的人或想学习编程的朋友,应该挑选学习Python、C++还是Java?关于许多要面临就业的大学生、想转行找工作的人来说,零基础挑选学习哪...

20510
来自专栏PPV课数据科学社区

使用 Python 创建 AI 比你想象的轻松

原文地址:https://blog.csdn.net/Lunaqi/article/details/76171702

882

扫码关注云+社区