C语言是一个无限广阔的世界,你刚开始睁眼看它的时候以为视线的尽头就是边界,但当你慢慢走去,才发现天外有天。这或许就是江湖传说只有C才有真正高手的原因,或许我们也可以反过来说:C没有高手——因为没有人能够真正走到尽头。
    C语言是一门放荡不羁的语言,它给你最大自由,也容易让你摔跤,甚至迷失方向。作为一名程序员要在自由下学会自律,一名程序员的自我修养修养是很重要的。

了解一种东西必须首先了解其历史:
 
  1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。
  1967年,剑桥大学的Matin Richards对CPL语言进行了简化,于是产生了BCPL语言。
  1970年美国贝尔实验室的Ken Thompson以BCPL语言为基础,又作了进一步简化,设计出了很简单的而且很接近硬件的B语言(取BCPL的第一个字母),并用 B语言写第一个UNIX操作系统,在PDP-7上实现。
  1972年至1973年间,贝尔实验室的 Dennis Ritchie在B语言的基础上设计出了C语言(取 BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练、接近硬件),又克服了它们的缺点(过于简单、数据无类型等)。最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。
  1973年,Ken Thompson和Dennis Ritchie两人合作把UNIX的90%以上用 C改写(UNIX第5版。原来的UNIX操作系统是1969年由美国的贝尔实验室的Ken Thompson和Dennis Ritchie用汇编开发完成的)。
  1978年Brian Kernighian和Dennis Ritchie出版了名著《The C Programming Language》(取两人名字首字母,也就是通常所说的K&R),这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它被称为标准C。
  1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充,制定了新的标准,称为ANSI C。ANSI C比原来的标准C有了很大的发展。
  K&R在1988年修改了他们的经典著作《The C Programming Language》,按照ANSI C的标准重新写了该书。
  1987年,ANSI C又公布了新标准--87 ANSI C 。目前流行的C编译系统都是以它为基础的。
 
  1980年,Bjarne Stroustrup出于工作需要借鉴Simula的思想为C添加了类的概念,称为C with Classes。他同时获得了C的效率和类的方便。
  1983年C with Classes有了一个新的名字:C++。此间,C++一直被作为一种非标志语言在“民间”流传。
  1998年,C++已经是一门非常热门的语言,而且版本不一,国际标准化组织(ISO)对其进行了标准化,统一了语言风格,增加了一些重要特性(模版、异常处理机制等),丰富了标志类库。C++从此成为一门全新的语言。

C语言的历史及个人拙见的更多相关文章

  1. JavaScript 语言的历史

    说明:此类博客来自以下链接,对原内容做了标注重点知识,此处仅供自己学习参考! 来源:https://wangdoc.com/javascript/basic/introduction.html 1.诞 ...

  2. java基础学习总结一(java语言发展历史、jdk的下载安装以及配置环境变量)

    最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有“01”构成,最早 ...

  3. Java基础学习总结一(Java语言发展历史、JDK下载安装以及配置环境变量)

    最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有“01”构成,最早 ...

  4. C语言的历史

    1.ALGOL语言 ALGOL ,为算法语言(ALGOrithmic Language)的缩写,是计算机发展史上首批产生的高级程式语言家族.当时还是晶体管计算机流行的时代,由于ALGOL语句和普通语言 ...

  5. [转]C++语言的历史和标准化

    转:https://blog.csdn.net/lemonrabbit1987/article/details/48222339 1979年4月,贝尔实验室的Bjarne Stroustrup(本贾尼 ...

  6. UVa 1671 语言的历史——判断两个DFA是否等价

    题意 一个DFA可以用一个5元组  $((Q, \sum , \delta , q_0, F))$ 表示,其中 $Q$ 为状态集,$\sum$ 为字母表,$\delta$ 为转移函数,$q_0$ 为起 ...

  7. Java基础笔记(1) 语言 JAVA的历史 Java的搭建环境

    本文除了搭建是重点,其他的都当阅读小说一样去看就好了,不想看可以直接抓住重点,我会改变颜色勾出重点! 英语是人与人交流沟通的重要方式之一.JAVA:是人与计算机沟通交流重要方式之一.我们除了用java ...

  8. Java学习1 - java 历史

    Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如:交互式电视,烤面包箱等.Sun内部人员把这个项目称为 Green,那时World Wide Web还在图纸上呢.该小 ...

  9. 【转】从Go、Swift语言出发

    Google于2009年第一次提出了Go的构思,Facebook在去年春天引入了Hack,随后不久Apple也发布了其Swift语言. 在战争中,胜利者写历史书:在科技中,赢的公司都在写编程语言.互联 ...

随机推荐

  1. C# WinForm 关于窗体最大化时的是否全屏效果与是否遮盖任务栏

    0.新建窗体 及添加按钮 1.  执行如下按钮事件  private void btnFormMax_Click(object sender, EventArgs e)  {     if (this ...

  2. sql 中有关时间的语句

    1.比较得到两个时间相差的间隔 SELECT datediff(minute, ’2009-04-28 12:05:00′, getdate()); SELECT datediff(month, ’2 ...

  3. 微软宣布.NET开发环境将开源 支持三大操作系统(windows,Mac OS X和Linux)(转)

    微软周三(11月12日)公布了.NET开发框架开源计划.公司拟将这长期以来只能运行于Windows系统下的开发环境,通过GitHub开源,以实现跨平台支持Mac OS X和Linux.根据微软公布的计 ...

  4. LinkedBlockQueue生产消费源码解析

    LinkedBlockQueue自JDK1.5以后提供的一种阻塞队列,遵循生产者消费者模式,实现了BlockQueue接口,如图 从它的名字可以了解到它是采用链表的方式实现了阻塞队列,并且定义了“节点 ...

  5. SpringBoot整合Netty

    总体来说只需要三个步骤,下面详细介绍 第一步 创建SpringBoot工程snetty 第二步 创建子模块也就是ModuleClient,Server,均为SpringBoot工程 第三步 将服务器端 ...

  6. Application作用域实现:当用户重复登录时,挤掉原来的用户

    Application作用域实现:当用户重复登录时,挤掉原来的用户 一.实现思想 1.application(ServletContext)是保存在服务器端的作用域,我们在application中保存 ...

  7. Oracle 临时表创建及删除

    Oracle临时表 临时表分为两种 会话级别(ON COMMIT PRESERVE ROWS;) CREATE GLOBAL TEMPORARY <TABLE_NAME> ( <co ...

  8. python-策略模式

    源码地址:https://github.com/weilanhanf/PythonDesignPatterns 说明: 策略指的就是为了达到某一目的而采取的手段或者方法.为了实现软件设计咪表,对象可能 ...

  9. JavaScript判断值是否是NaN

    第一种方法: if (!Number.isNaN) { Number.isNaN = function (n) { return ( typeof n === 'number' && ...

  10. Java基础笔记(1) 语言 JAVA的历史 Java的搭建环境

    本文除了搭建是重点,其他的都当阅读小说一样去看就好了,不想看可以直接抓住重点,我会改变颜色勾出重点! 英语是人与人交流沟通的重要方式之一.JAVA:是人与计算机沟通交流重要方式之一.我们除了用java ...