Algorithm 版 (精华区)

发信人: ssos (存在与虚无·格物致知), 信区: Algorithm
标  题: 2001年图灵奖“面向对象”(转载)
发信站: 哈工大紫丁香 (2002年04月17日08:18:04 星期三), 转信

【 以下文字转载自 Computer 讨论区 】
【 原文由 Car 所发表 】
2001年图灵奖“面向对象”
崔林 吴鹤龄
2002-4-15 14:21:04
近日,美国计算机学会(ACM)宣布,将2001年的图灵奖授予挪威计算机科学家奥尔-约
翰·戴尔(Ole-Johan Dahl)和克利斯登·奈加特(Kristen Nygaard)。因为他们在2
0世纪60年代开发Simula I 和Simula 67时首先引入了类(class)、对象(object)、
继承(inheritance)和动态绑定(dynamic binding)等重要概念,为面向对象(Obje
ct oriented)这一当前最流行、最重要的程序设计技术奠定了基础。
挪威是一个北欧小国,而且上世纪中叶的挪威政府对信息技术不太重视,在这种情况下
,戴尔和奈加特怎么可能作出这一创造性的重大贡献呢?说来这里有一段曲折而有趣的
故事。
奈加特1926年生于奥斯陆,1948年大学毕业,进入挪威国防研究院NDRE(Norwegian De
fence Research Establishment),从事有关计算、程序设计和运筹学方面的工作。19
56年他在职完成了硕士学业,以《蒙特卡洛法的若干理论问题》(Theoretical Aspect
s of Monto Carlo Methods)为题提交了学位论文,并在奥斯陆大学通过答辩,取得数
学硕士学位。1959年他创建了挪威运筹学学会NORS(Norwegian Operation Research S
ociety),并出任学会首任主席(1959-1964),1960年他从NDRE转至挪威计算中心NCC
(Norwegian Computing Center),1962年出任其研究部主任(Director of Research
)。
当时,奈加特的研究兴趣主要在运筹学方面。所谓运筹学是用数学方法研究军事、经济
活动中的计划与管理问题的一个学科,其目的是对系统中涉及的人力、物力进行统筹安
排,实现最佳调度,以提高系统的整体效率。它包括线性与非线性规划、整数规划、动
态规划、网络优化、对策论、排队论等内容,有十分广泛而重要的应用。运筹学研究中
的首要问题是为实际系统建立数学模型,而模型要解决的首要问题是如何描述系统中的
不同组成部分及其运行。20世纪50年代时,这种模型通常通过符号标记(Symbol notat
ion)实现,例如用流程图(flow diagram)加上若干系统运行规则,然后用蒙特卡洛法
加以分析,使模型逐步修改并完善。这种方法很不方便,效率不高。奈加特不太满意,
他要寻求一种新的有效方法。到1961年前后,奈加特经过潜心研究,对如何改进已经形
成了一些清晰的概念。但在把这些概念付诸实现上,奈加特遇到了困难:他的计算机知
识和经验不足以设计出新的计算机模拟语言去实现他的设想。幸好,他在NDRE时的老朋
友戴尔这时也来到了NCC。
戴尔1931年10月12日生于挪威最南端濒临北海的港口城市曼达尔(Mandal),比奈加特
小5岁,其经历几乎和奈加特一模一样:大学毕业后也是进了NDRE(1952年);也是在职
完成了硕士学业,1957年以《数值数学》(Numerical Mathematics)为题的论文通过了
奥斯陆大学的论文答辩,取得数学硕士学位。但是戴尔的研究方向偏重于计算机,他的
硕士论文主要讨论多维矩阵在有二级存储器的计算机上如何表示和处理,因此,戴尔在
程序设计语言方面有相当丰富的经验和深厚的根底。这样,奈加特和戴尔这对“最佳搭
档”经过深入讨论和紧密合作,终于在1962年推出了基于Algol60的Simula的第一个版本
。Simula是Simulation Language即模拟语言的词头缩写。在第二次世界大战中,科学家
利用运筹学成功地解决了诸如雷达站的最优选址、反潜炸弹的最佳引爆时间、水雷的最
佳布阵、安全程度最高的轰炸机战斗机组合等问题。战后,科学家又正在试图用运筹学
解决工业生产和管理中的问题,帮助提高生产率与利润,增强竞争能力。因此,Simula
特别适用于研究售票系统、生产线组织、程序开发、神经网络、并发程序处理这类离散
事件。
1964年3月,奈加特和戴尔完成了Simula的最后设计,这个最后设计在两个美国软件工程
师琼斯(Ken Jones)和斯派罗尼(Joeseph Speroni)的协助下由戴尔于1964年12月在
NCC新购置的UNIVA 1107上完成,从而诞生了世界上第一个Simula I编译器,也就是世界
上第一个能对离散事件系统进行模拟的程序设计语言。
Simula I推出以后,在生产计划、库存管理、交通运输、建筑物的翻修等诸多方面获得
成功应用。随后Simula在瑞典、德国、前苏联等许多国家被广泛采用。除UNIVAC版本外
,1968年在宝来公司的B5500上,在前苏联的乌拉尔-16计算机上也都实现了Simula。
奈加特和戴尔对所取得的成绩并不满足,在开发过程中,他们已经意识到了Simula还存
在一些缺陷,如缺乏跟踪和调试功能,缺乏必要的工具去表达相关进程共有的性质,以
及Algol 60编译器本身所带来的限制等等。
1965年秋天,位于特隆赫姆(Trondheim)的挪威理工学院NIT(Norwegian Institute 
of Technology)和NCC接触,希望为1107开发一个专门用于Simula的Algol编译器,这正
中奈加特和戴尔的下怀,双方很快达成协议,建立了合作关系。NIT方面为首的专家是克
努特·斯考克(Knut Skog)。“对象”(Objcet)和“类”(class)以及“子类”(
subclass)等基本概念正是在这个时期(1966年末)出现和形成的。在这个过程中,他
们的目标也由专用语言逐渐转向通用语言,从而诞生了第一个面向对象的程序设计语言
Simula 67。
Simula 67首次同公众见面是在1967年5月于奥斯陆郊外的小镇莉沙布(Lysebu)举行的
IFIP TC-2 工作会议上。两个星期以后,即1967年6月又召开了另一次会议,为Simula 
67制定标准,以使今后在不同机器上实现的Simula程序可以兼容,1968年2月形成了Sim
ula 67的正式文本。
在程序设计语言的发展史上,20世纪60年代下半期是承上启下的重要时期。这个时期有
3种重要的语言问世,即我们这里介绍的Simula 67,由IFIP组织欧美一批顶尖计算机科
学家共同设计的Algol 68,以及由IBM公司为和360系列机配套而联合两大计算机用户组
织SHARE和GUIDE共同开发的PL/I。这三个语言各有特色,均有所创新,都对后来的程序
设计语言产生了重大影响。但客观地说,Simula 67的面向对象概念影响是最巨大而深远
的。它本身虽由于比较难学、难用而未能广泛流行,但在它的影响下所产生的面向对象
技术却迅速传播开来。70年代Xerox公司推出了Smalltalk,80年代Bell实验室推出了C+
+,美国交互软件公司推出了Eiffel……从此在全世界掀起了一股OO(Object oriented)
热潮,至今盛行不衰,成为程序设计的主流。因此OO的奠基人奈加特和戴尔获得新世纪
的第一个图灵奖可说是当之无愧。

--
welcome to: http://ir.hit.edu.cn/~car/

看来尘世间最远的距离还是天涯海角!

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 天外飞仙]
--
※ 转载:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: 天外飞仙]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.907毫秒