时间:2017-3-16来源:本站原创作者:佚名
了解Dennis与C语言丹尼斯·里奇DennisM.Ritchie(以下简称Dennis)(-),C语言之父,目前担任贝尔实验室/朗讯科技公司(原ATT实验室)下属的计算科学研究中心系统软件研究部的主任一职。由于他还和KenThompson一起开发了Unix操作系统,因此,他还是名副其实的Unix之父。从二十世纪七十年代起,他因杰出的工作得到了众多计算机组织的公认和表彰。年,美国计算机协会(ACM)授予他系统及语言杰出论文奖。年,电气和电子工程师协会(IEEE)授予他EmmanuelPiore奖。年,他获得了贝尔实验室特别人员奖和美国计算机协会颁发的图灵奖。年,他获得了NEC公司的CC基金奖。年,电气和电子工程师协会又给他颁发了优秀奖章(HammingMedal)……C语言是一门伟大的承前启后的语言,它是目前世界上流行、使用最广泛的高级程序设计语言,C++、C#和JAVA都是在C语言基础上开发出来的。大师的成长经历Dennis有句名言:“Unix是简洁的。它要做的仅是让天才们知道它究竟有多简单”。UNIX的风格,也正是他开发C的风格,也是他个人工作作风的真实写照。Dennis认为自己并不是在英雄熏陶下成长起来的,但在他的职业生涯中,有两个人对他的影响最大,一个是他父亲,而另一个是他的挚友,同为Unix发明人的KenThompson。尤其是后者,KenThompson负责了大部分的Unix的工作,同样也是C语言的前辈,而C语言从某种程度上来讲,是Unix开发项目的副产品。年9月9日,Dennis先生出生于纽约的Bronxville。年左右,他在哈佛大学学习物理和应用数学。也正是在这时候,一个偶然的机会改变了他一生的选择。主修物理学的他在听取了一些计算机讲座后,开始对计算机更加着迷。年,Dennis先生加入贝尔实验室,他的父亲在那里有长时间的工作经历,正是由于父亲的影响,他走上了科学研究之路。不久后,他加入了Multics项目,负责多道处理机的BCPL语言和GE的编译器,它们都是属于GECOS系统的。同样的,他也写了ALTRAN语言的代数编译器,那是用于符号计算机的一种语言和系统。后来,Dennis先生协助KenThompson做Unix操作系统。在Unix发展之前,他向Thompson的B语言中加入数据类型和新的句法,这就这样产生了一种新语言——C。C是便携式Unix的基础,也在其它领域得到了广泛应用,同时是后来的C++语言的基础。C语言是怎样炼成的作为一门伟大的语言,C语言又是如何诞生的呢?对此,大师对它的描述是那样地不经意。C语言的发展颇为有趣,它的原型是ALGOL60语言。年,剑桥大学将ALGOL60语言发展成为CPL(CombinedProgrammingLanguage)语言;年,剑桥大学的MatinRichards对CPL语言进行了简化,于是产生了BCPL语言。年,为了适应较小存储器的需要,在对众多语言实验未果的情况下,KenThompson将BCPL进行了修改。形成B语言。由于B语言也有一些先天缺陷,经过稍微改进,产生了NB,而为了适应UNIX操作系统的开发工作,Dennis在年,在NB语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。为了使Unix操作系统推广,年,Dennis先生和BrianW.Kernighan出版了名著《C程序设计语言》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。严格地讲,早期的C语言主要是用于Unix系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C语言开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。年,随着微型计算机的日益普及,出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准,成为现行的C语言标准。C语言发展迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件都是由C语言编写的。用C语言加上一些汇编语言子程序,就更能显示C语言的优势了。后来的C++、Java等语言受C语言影响深刻。对话C语言之父C语言的将来C语言是Dennis先生的得意之笔,C语言是面向过程的语言,目前谈论更多的则是面向对象的语言。关于众多计算机语言的激烈辩论中,始终处在中心位置的C语言之父Dennis先生却显得很平静。而他对事物的表达还一如他的性格:简洁。让我们来看看Dennis先生对此的态度。问:您是怎样发明C语言的?发明的过程是什么样子的。它对您的生活和研究有什么影响吗?Dennis:C语言最初的目的是为了写编译器和语言设计,为了更易于编写Unix操作系统程序。Unix做得比较好,并且PC开始相当普遍,由于C语言在Unix上的很好地应用,使得用它来写应用程序和操作系统迅速增长起来。因此,对我来说,C语言的确非常重要。问:您觉得C语言和C++有什么不同吗?Dennis:多年以来,C和C++,已经是两种不同的语言了;Stroustrup先生汲取了C语言语法和潜在的语义学中的许多东西,形成了C++语言。在一些交叉领域,标准委员会尽量使两种语言兼容。问:如果Unix被选为过去和当前的操作系统,尽管过去几年出现了一些面向对象的语言,毫无疑问C也将被认为是“唯一的语言”。你怎么看待C++和Java,以及C和C++程序员之间经常发生的激烈争论呢?Dennis:C++的很大一部分得宜于C。因为C早在C++出现之前就已经具有了非常好的兼容性,所以C++才可以采用C作为建构自身的基础并使用它来开发自己的编译器。C被设计成为一种便携式汇编语言,对于这一特性人们褒贬不一,C++则试图把编程方法提高到面向对象这种更抽象的层次上来。从最近形成的标准来看,二者共同的缺点是:带有过多的装饰和附属物。同样的,它们都采用了相同的编程思想,都试图按照真正的需求来编写代码。Java显然是C++的改进版本。它砍掉了C中的指针操作部分,引入了生成独立于机器的目标文件这种编程思想(虽然这个思想并不是很新的,但是也许直到现在它才真正可行了)。问:您对面向对象是怎样理解的?它是不是一种好的可接受的编程思考方式?有没有学习OO必须的有用的工具?Dennis:我看过OO的东西但我现在还不是OO迷。这种思想是非常好的,也即是通过隐藏任务的执行来定义界面,但是它可能做得有点过火;它也很难发现工作本质的程序终结;它的所有的东西就是界面。问:您能对IT的将来做一下预测吗?C语言的将来会怎样?将来我们最有可能用什么语言?Dennis:我对预测不在行,对于C语言,它可能正在被C++,也可能是Java所替代,也可能是更高级的脚本语言。当然,它在关于系统一类设计中还是相当强的工具。但是很明显,人们正在从像C语言之类的直接编译型语言,转换到注重解释性的语言,像某些脚本语言。在最后,Dennis也提出了自己对教育的一些建议:“教育知识面最好要宽一些,不要仅仅局限于编程。即使是编程,最好多学几种语言。我在大学时花了几年时间学习物理和计算理论知识,现在我仍然对当时的选择比较满意”。







































北京哪能治好女性白癜风
治疗白癜风得花多少钱

转载请注明原文网址:http://www.gzdatangtv.com/jsyy/6218.html
------分隔线----------------------------