《伟大的计算原理》一计算的范型

计算的范型

1962年之后的30年中,传统自然科学的研究者经常对“计算机科学”这个名字进行质疑。在计算机科学这个新兴领域中,他们可以很轻易地看到工程范型(系统设计与实现)和数学范型(定理证明),但是却很难看到太多的科学范型。此外,与Simon的辩解相反,这些研究者认为科学是一种关于自然世界的方法,而计算机则更像是一种人工制品。

图1.4 两位先驱者John Backus(1924—2007,左图)和Grace Hopper(1902—1992,右图)设计出了高级程序设计语言:通过编译器,高级程序设计语言可以被自动转换为机器代码。1957年,Backus领导的团队开发出了FORTRAN语言:一种面向数值计算的高级程序设计语言。1959年,Hopper领导的团队开发出了COBOL语言:一种面向商业计算的高级程序设计语言。这两种语言至今仍然被使用。这些发明使得类似ENIAC的接线式程序设计彻底失去了生存空间,并且极大地降低了计算领域的入门门槛。自此以后,人们已经发明了数千种的程序设计语言(来源:Wikipedia Creative Commons)
这个领域的创立来自这三种不同的范型(工程范型、数学范型和科学范型)1。一些人认为计算是应用数学的一个分支,另一些人则认为计算是电子工程的一个分支,其他人则认为计算是面向计算的科学的一个分支。在第一个40年中,这个领域主要关注于工程:如何构造可靠的计算机及其网络以及如何开发复杂的计算机软件,吸引了几乎每一个人的注意力。到20世纪80年代,这些工程问题基本上已经得到了有效的解决;同时,在计算机网络、超级计算机、个人计算机的帮助下,计算开始向各个领域快速渗透。在20世纪80年代,计算机的能力已经变得异常强大,而那些具有远见卓识的科学家开始意识到计算机可以用来解决科学和工程中的重大挑战问题,并由此产生了“计算科学”的研究运动。许多国家的科学家共同参与到这一运动中,并最终使得美国国会在1991年通过了名为“高性能计算和通信”(High-Performance Computing and Communications,HPCC)的行动计划,该计划旨在探索采用计算方法解决科学和工程中的重大挑战。

图1.5 Allen Newell(1927—1992,左图)、Alan Perlis(1922—1990,中图)、Herb Simon(1916—2001,右图)认为计算是一种关于计算机周边各种现象的科学。1967年,他们认为,计算机科学是研究计算相关事物的一种必备科学,涉及计算机器、软件、智能、信息、系统设计、图形、解决实际问题的算法等众多方面。Simon则进一步认为,人工科学(即研究人造制品周边现象的科学)如同传统科学一样,也是一种科学(来源:Wikipedia Creative Commons)
目前,人们看起来已经形成了这样一种共识:计算是一种典型的科学和工程;而且,无论是科学还是工程自身,都不能有效刻画计算。那么,如何刻画计算,计算的范型是
什么?
从一开始,这个领域的领导者就一直被范型问题所困扰。从发展历程来看,目前已经出现了试图统一各种不同视角的三次浪潮。第一次浪潮,由Newell、Perlis、Simon三人(1967)领导,认为计算不同于所有其他科学领域,原因在于计算的研究对象是信息处理过程。Simon将计算称为人工科学(1969),其背后所基于的一个共识性观念是,计算不是一种自然过程。这一波浪潮的流行语是:“计算研究计算机周边的各种现象。”
第二次浪潮关注于程序设计,即如何进行算法设计,从而产生有用的信息处理过程。在20世纪70年代早期,两位计算领域的先驱者Edsger Dijkstra和Donald Knuth就强烈主张将算法分析作为计算的统一范型。这一波浪潮的流行语是:“计算机科学就是程序设计。”这种观点近来已经逐渐落没,因为这个领域的发展已经远远超过程序设计的范畴,同时也因为公众对于“程序员”这一概念的理解变得过于狭隘(仅仅是一个编写程序源代码的人)。

图1.6 Donald Knuth(1938—今,左图)和Edsger Dijkstra(1930—2002,右图)认为程序设计是计算的核心。1970年左右,他们认为算法的设计与分析过程应该是计算机科学的核心关注点。对他们而言,一个程序设计专家就是一个计算机科学家。不幸的是,这种重要的观点在20世纪90年代后期不复存在,因为程序设计人员被官方定义为低层次的源代码编写者(来源:Wikipedia Creative Commons)

图1.7 计算机系统领域的先驱Bruce Arden(1927—今,左图),在COSERS项目中形成了“计算不仅仅是程序设计”的观点。在20世纪70年代末,他领导的团队将计算领域定义为一个对“什么可以被自动化”进行研究的领域。在当时,这种观点非常迎合公众对于机器人(如右图中出现在电影《星球大战》中的两个机器人)的好感。但这种观点并没有生存太长时间,因为在短短几年之后人们对科学的理解发生了重大的变化(来源:Wikipedia Creative Commons)
第三次浪潮则源于由Bruce Arden(1983)所领导的项目:Computer Science and Engineering Research Study(COSERS)。这是一个由美国国家科学基金在20世纪70年代资助的项目。该项目将计算定义为:对工程、科学和各种业务领域中的信息处理过程的自动化。这一波浪潮的流行语是:“计算就是信息处理过程的自动化。”虽然该项目的结题报告对很多深奥难懂的研究问题进行了浅显易懂的解释,但其核心观点并没有在大众中得到广泛传播。

图1.8 Tim Berners-Lee(1955—今)展示了一种不同于普遍将计算理解为“由一组机器构成的网络”的视角。1989年,他发明了万维网(World Wide Web):在万维网上,存储于机器中的信息之间相互链接,并且可以随着鼠标的点击从信息链的一端移动到另一端。他认为这种由信息链接形成的网络中蕴含了大量的新型计算行为,使得人们能够为信息赋予更多的含义(来源:Wikipedia Creative Commons)
这三次浪潮所具有的一个共同特点是将计算机作为核心关注点。始于20世纪80年代的计算科学运动则不再具有这样的特点:其认为,计算不仅仅是科学研究的工具,而更是一种进行科学思考和科学发现的崭新方法。计算科学的拥护者将计算视为帮助他们理解信息处理过程和算法控制能力的得力伙伴。
这种新视角的一个重要结果是:科学家开始意识到在自然界中也存在信息处理过程,并且也可以采用由基于计算机的人工信息处理所发展出来的方法对其进行研究。生物学是其中的一个典型代表:作为对认知科学家Douglas Hofstadter(1985)观点的一种呼应,诺贝尔奖获得者David Baltimore(2001)认为,生物学已经变为一种信息科学。David Bacon(2010)认为物理学也正在发生类似的变化:作为量子计算的支撑理论,量子力学也是一种信息科学。Erol Gelenbe(2011)列举出了一长串的科学领域,其主要研究对象都涉及自然界的信息处理。计算机科学的方法同样适用于自然界的信息处理。这一结论进一步巩固和强化了Herb Simon(1969)“计算机科学的确是科学”的观点。
最近,Paul Rosenbloom(2012)注意到了另外两点原因,使得“所有的计算都是人工过程”的观点变得愈发陈旧。第一,许多科学家开始认同,人也是全球生态系统的一部分,因此,人工制品也如同河狸筑造的水坝或蚂蚁构造的巢穴一样自然。第二,人类能够在任意粒度层次上修改自然过程的能力,极大地模糊了自然和人工的边界,例如干细胞克隆器官、有机生长的纳米机器以及转基因农作物等。

图1.9 两位诺贝尔奖获得者,物理学家Ken Wilson(1936—2013,左图)和生物学家David Baltimore(1938—今,右图)站在了计算科学的前沿:他们认为计算是一种进行科学思考和科学发现的崭新方法。20世纪80年代中期,Wilson指出科学中的一些重大挑战问题可以通过计算得到解决,并认为应当使用具有高度并行性的超级计算机来进行这些计算。20世纪90年代,Baltimore指出,生物学已经变成对细胞和所有生命过程中所蕴涵的信息处理过程进行研究的一门学科。计算机科学家一开始并不愿意参与其中,但却对计算科学表达了坚定的拥护,从而导致了计算领域中的一场科学复兴运动(来源:Wikipedia Creative Commons)

时间: 2024-07-28 20:32:04

《伟大的计算原理》一计算的范型的相关文章

计算原理-汇编计算,求步骤,微机原理课题

问题描述 汇编计算,求步骤,微机原理课题 上课习题,求好人哇, 解决方案 你们学校的投影仪的灯泡改换了,这么暗,看不清.换了灯泡再来提问. 解决方案二: 屏幕下方的不是答案吗?灯泡该换了 解决方案三: 其实就是统一标准,好计算

《伟大的计算原理》一导读

前 言 就在70年前,除了少数专家之外,没有人听说过计算机.现在,计算机.软件和网络无处不在.在地球上的任何地方,它们都以更快的发展速度给我们的生活带来了各种各样的好处. 在这么短的几十年中,我们学会了设计和建造如此规模的系统,这真是一件令人吃惊的事.如今,通过支持大规模合作,计算技术使得知识工作能够自动化,同时也在不断扩大生产力.第二次机器革命正扑面而来1.这是如何实现的?是什么样的伟大思想使这一切成为可能? 计算机给我们带来好处的同时也带来忧虑.计算机带来的自动化是否会使很多工人失业?计算机

《伟大的计算原理》一第1章 Great Principles of Computing 作为科学的计算

   本节书摘来自华章出版社<伟大的计算原理>一书中的第1章,第1.1节,作者[美]彼得 J. 丹宁(Peter J. Denning)克雷格 H. 马特尔(Craig H. Martell),更多章节内容可以访问"华章计算机"公众号查看. 第1章 Great Principles of Computing 作为科学的计算 计算机科学研究计算机周边的各种现象. --Newell,Simon和Perlis 计算机之于计算机科学,正如望远镜之于天文学. --Edsger W.

《伟大的计算原理》一 第2章 Great Principles of Computing 计 算 领 域

第2章 Great Principles of Computing 计 算 领 域 生物学是一种信息科学. --David Baltimore 除了理论和实验之外,计算是进行科学研究的第三种方式. --Kenneth Wilson 科学与科学应用密不可分,如同一个树上结出的多枚果实. --Louis Pasteur 计算活动由人类实施,而不是基本原理.在长期的实践活动中,人们的计算活动逐渐形成了丰富多样的计算领域(computing domain).每一个计算领域主要关注一项技术或其应用.例如,

《伟大的计算原理》一第3章 Great Principles of Computing 信  息

    本节书摘来自华章出版社<伟大的计算原理>一书中的第3章,第3.1节,作者[美]彼得 J. 丹宁(Peter J. Denning)克雷格 H. 马特尔(Craig H. Martell),更多章节内容可以访问"华章计算机"公众号查看. 第3章 Great Principles of Computing 信 息 通信的内容语义与通信工程无关. --Claude E. Shannon 软件并不只是交互设备,更生成了一个用户生活空间. --Terry Winograd 自

代码-用Qt编写的计算重力传感器SMB380的x,y,z轴数据的计算原理的问题

问题描述 用Qt编写的计算重力传感器SMB380的x,y,z轴数据的计算原理的问题 用Qt做的重力传感器SMB380数据计算 ,有一行代码 result = -(9.8 * (float) (mode + 1)) * 2 * dat / 512.0; 不知道计算原理, mode = value_temp[3]; x_start = dToa(value_temp[0], mode); y_start = dToa(value_temp1, mode); z_start = dToa(value_

利用搜索引擎关键字正排计算原理进行深度伪原创

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 如何进行有效的文章伪原创这是个永远被关注和热谈的话题,市面上的那些所谓的伪原创工具,无非就是对文章中的同义词进行替换,或者对文章的段落进行打乱排序,甚至是几篇文章组合切割成若干篇文章.这些做法有没效,看完下面的文章你们就会有大概的认识,但有点可以肯定的是,这样处理后的文章简直就是垃圾,不会被用户所认同.竟然用户不认同的东西,搜索引擎会认同吗?

《伟大的计算原理》一计算的重要原理

计算的重要原理 对计算这一概念的理解的逐渐成熟,使得我们能不断从新的视角去确定计算领域的内涵.直到20世纪90年代,计算领域中绝大多数的科学家对该领域的理解都会落实到其所包含的一组核心技术上,例如算法.数据结构.数字化方法.编程语言.操作系统.网络.数据库.图形图像.人工智能.软件工程等.这是对计算领域的一种深刻的技术型解释.本书对计算的理解则更加关注这些技术的能力和局限背后所隐藏的基本原理.本书所给出的计算基本原理划分为6类:通信(communication).计算(computation).

《伟大的计算原理》一第2章

第2章 Great Principles of Computing计 算 领 域生物学是一种信息科学.--David Baltimore除了理论和实验之外,计算是进行科学研究的第三种方式.--Kenneth Wilson科学与科学应用密不可分,如同一个树上结出的多枚果实.--Louis Pasteur计算活动由人类实施,而不是基本原理.在长期的实践活动中,人们的计算活动逐渐形成了丰富多样的计算领域(computing domain).每一个计算领域主要关注一项技术或其应用.例如,信息安全领域主要