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 条评论
登录 后参与评论

相关文章

来自专栏java思维导图

程序员,请优先提高代码的可读性

现在,当有人提及“优化”一词时,他们通常是指“优化执行时间”,除非他们明确表明要优化GPU的内存消耗,网络流量等等。

784
来自专栏Kirito的技术分享

天池中间件大赛dubboMesh优化总结(qps从1000到6850)

天池中间件大赛的初赛在今早终于正式结束了,公众号停更了一个月,主要原因就是博主的空余时间几乎全花在这个比赛上,第一赛季结束,做下参赛总结,总的来说,收获不小。

2036
来自专栏CDA数据分析师

集 Python、C、R、Ruby 之所长,动态编程语言 Julia 1.0 正式发布

Julia 可以看作是一门集众家之所长的编程语言,在首次公开时开发团队就已明确其需求:

441
来自专栏数说工作室

【SAS Says】基础篇:update、output、transpose以及相关的数据深层操作

特别说明:本节【SAS Says】基础篇:update、output、transpose以及相关的数据深层操作,用的是数说君学习《The little SAS ...

3306
来自专栏安富莱嵌入式技术分享

【RL-TCPnet网络教程】第29章 NTP网络时间协议基础知识

本章节为大家讲解NTP (Network Time Protocol,网络时间协议)和SNTP(简单网络时间协议,Simple Network Time Pro...

913
来自专栏青枫的专栏

Java的日期类的时间从为什么是从1970年1月1日开始?

----------------------------------------------------------------------------- I ...

2132
来自专栏游戏杂谈

两道函数式编程题

Winter出的题,有些我也答不上来,题目难度并不是很高,但还考的比较深入。例如:

782
来自专栏数据结构与算法

Debug

复杂度证明 普通莫队时间复杂度为 证明: 当我们第i个询问转移的第i+1个询问时 如果第i个询问区间和第i+1个询问区间的左端点所在块的编号相同,那么左端...

33811
来自专栏有趣的Python

算法与数据结构(六)并查集

并查集 Union Find 图相关算法的实现。 一种不一样的树形结构 连接问题 Connectivity Problem 可视化的来看连接问题: ? 连接问题...

2844
来自专栏程序人生

软件性能调优:看数据,还是谈概念?

上周写了「想让服务器跑得快,并不是换个编程语言那么简单」,很多朋友的留言歪了楼:论性能,C语言甩Python数倍到数十倍,你说和编程语言没关?拜托,程序君只是说...

2584

扫码关注云+社区