
奥利来自-约翰·达尔(英语:Ole-Johan Dahl,1931年10月12日-2002年1月29日)360百科,生于挪威曼达尔,著名计算机科学家。
他与克里斯汀·尼加德(Kristen Nygaard)一起通过设计编程语言Simula I和Simula 67,产生编必居布为善了面向对象编程出现至关重要的想法。他被认为是"面向对象编程"之父。
- 中文名称 奥利-约翰·达尔
- 外文名称 Ole-Johan Dahl
- 国籍 挪威
- 出生日期 1931年10月12日
- 逝世日期 2002年1月29日
奥利-约翰·达尔与克利斯登·奈加特共同创造了Simula,被认为是面向对象之父机还特感罪脚尔。因此贡献,他与克利斯登·奈加特共同获得2001年图灵奖与2002年约翰·冯诺依曼奖。
面向对象编程是来自这个时代的主要编程范式。这个范式出现的基础是核心概念,如对象、类和具有虚拟量的继承,所有这些都清楚地建立在Ole Johan Dahl和Kristen Nygaard的离散事件模拟语言Simula I和一般编程语言Simula 67中。这些对象将数据、过程和协作操作序列方面集成到一个非常通用且功能强大的统一实体中。
通过将这些核心概念体现在一种专为系统描述和编程而设计的语言中,Dahl 和 Nygaard 为这些想法提供了逻辑和符号基础。软件可以构建在抽象层中,每个层都依赖于前一层实现的描述和概念平台。通过将Simula 67定义为国际标准语言Algol-60的延伸,这种表达媒介可以进入,可供整个研究界使用。Simula 多年来形成并加速了面向对象编程及其伴随的管理学科的出现。
奥勒-约翰·达尔1931年10月12日出生于挪威南部海岸的小镇曼达尔。虽然现在一个度假胜地,曼达尔的伤正固项裂行居民历来都仰望大海谋生,达尔是船长和水手的长队后裔。很快,达尔就不再延续这个传统了,因为他早期的兴趣是读书、数学和弹钢琴。他的母亲是家庭主妇,他的妹妹和弟弟在学业上都没有倾向。
他七岁时,全家搬到了奥斯陆以南的德拉姆门。他十三岁时,他的表弟被纳粹枪杀,全家逃到瑞典。因此,他错过了小学的一蒸承效增诗最后一年,在作为外部候选人参加入学考试后,他直接在高中开始学习。因为他能帮助老师向其他学生解释数学,他很快就被昵称为"教授"。
达尔在3岁时第一次听到古典360百科音乐,被古典音乐迷住了。他对音乐的热爱在他的一生中一直陪伴着他,但似乎他很早就决定把事业转移到别处。他选择了专注于数学的学术生涯,因为音乐是一种个人私事,用来丰富他和他的朋及友的生活,而不是香紧一个用来作为职业的领域。
达尔在奥斯陆大学学习留数字数学。在大学期间,他还在挪威国防研究机构(NDR点翻序E)兼职,1952年被分配到挪威国防研究机构服义务兵役。毕业后,他继续在那里全另跑职工作。在NDRE,他第一次被介绍给电脑。他还幸运地受到扬·加威克(在挪威通常被称为"信息学之父")调般什阶强局的影响,他能够激励和培养达尔的才能。1954年,达尔成为加威克的助手。
到1957年,NDRE已经们开划也画困获得了早期的费兰蒂水星计算机。达尔设计并实现了当时被认为是水星高级语言的,称为MAC(水星自动编码)。达尔的大学学位,虽然正式在数值分析领域,实际上是关于计算机科学:他的演讲标题是"在费兰蒂水星电才眼各充口者背放队脑的多个指数计数"。
在NDRE达尔也遇到了克里斯汀环·尼加德,这两个人之间的伙伴关系是改变计算的面貌。Nygaard一直在计算挪威第一座核反应堆的铀棒直径担。1949 年,NDRE 开始使用蒙特卡罗模拟,深任迫促选曲显由手工执行计算,而不是试图精确求解方程。"在[模拟]模型中,产生了大量中子的物理路径和历史,并对其特答由源跑找很这性进行统计分析,用于估计杆直径的正确选择"[Nyggard 1986]。后来Nygaard对渐殖型向友呀龙其他问题也采用了同样的方法,将快果树临直批台而识社个注意力转移到了操作研究上,并在1956年获得科学硕士学位,并获得概率理论的论题。
1960年,Nygaard迁至挪威计算中心(NCC),这是一个半政府研究机构,成立于1958年著示青举论鲜氢。他的简报是扩大NCC在计算机科学和操作研究方面的研究能力。他写道:"许多民事任务都提出了同样的方法问题[和他早期的军事工作]:使用模拟的必要性,概念和系统描述语言的需要,缺乏生成模拟程序的工具[7]。1961年,他开始设计模拟语言,以此来解决这些问题。
1962年1月,Nygaard写了一封信,描述了他的进步,写给法国运营研究专家查尔斯·萨尔兹曼。尼加德写道:
模拟语言(蒙特卡罗编译器)的状态是,我对如何描述排队系统有相当清晰的想法,并且已经开发了一些概念,我觉得这些概念可以合理地简单地描述大类的情况。我认为,这些结果甚至与编译器有一些兴趣,因为目前使用来描述此类系统的方式并不十分令人满意。...
在语言相当发达之前,编译器的工作无法开始,但这个阶段现在似乎已经到达。对这项工作感兴趣的专家程序员明天将与我见面。在我们以前的会议上,他相当乐观。[7]
"专家程序员"是奥勒-约翰·达尔。通过与Nygaard合作,Dahl提出了面向对象编程的初步想法,现在这是商业和工业应用编程的主要风格。达尔于1963年加入NCC,并一直呆到1968年,当时他被邀请成为奥斯陆大学的一名正式教授。
达尔和尼加德共同开发的语言是,首先(1962-1964年)一种模拟语言,称为SIMULA,现在通常被称为SIMULA I,后来被称为SIMULA 67的通用语言。
SIMULA I 旨在用于描述复杂系统和编程模拟其行为。尼加德写道:
SIMULA [I] 应为用户提供一组概念,以便他们理解所考虑的系统,以及准确、完整地描述其属性的语言。因此,它应该成为编写描述的人和他想与之沟通系统的人的工具。
同时,该系统描述应在添加必要的输入/输出和数据分析信息后,汇编成计算机仿真程序,提供有关系统行为的定量信息。[8]
虽然设计为模拟语言,几乎从一开始SIMULAI不仅用于仿真,也用于通用编程。它向用户介绍了将程序组织为交互、执行组件的系统的想法,事实证明,这一想法对各种应用程序都很有用。这些交互组件成为 SIMULA 67 的"对象"。
SIMULA 67 从一开始就设计为通用语言,但达尔和尼加德发明了一种机制(类前缀),使 SIMULA I 的模拟特异性功能在 SIMULA 67 中作为一种特殊的库可用。前缀可以用两种截然不同的方式,这产生了现代编程语言中最重要的两个想法:继承,它使得以意想不到的方式重用代码变得容易,模块用于扩展编程语言的词汇。
这些想法--对象、继承和模块化--是达尔和尼加德对编程学科的主要贡献之一。SIMULA 还贡献了流程概念,使程序员能够同时表达活动。有了美妙的经济,所有这些想法都实现了作为单一语言机制的变体使用,类。
达尔和尼加德在创造面向对象思想方面的成功部分显然是由于他们非凡的才能。但部分原因也是由于它们的背景非常不同,这使得一个语言要素成为另一种语言的批判对象。有一个故事说,1967年春天,一位新员工震惊地告诉总机操作员:"两个人在楼上走廊的黑板前激烈战斗。我们该怎么办?接线员走出办公室,听了几秒钟,然后说:"放松。只有达尔和尼加德在讨论SIMULA。
达尔搬到奥斯陆大学后,他故意停止进一步发展SIMULA的工作,并承担了在挪威建立计算机科学作为学术学科的责任,几乎单枪匹马。头10年,他是大学唯一的计算机科学教授。他白天教书,晚上写课本,一次监督多达20名研究生。他研究编程方法,并与Tony Hoare一起制作了一章,名为"分层程序结构",成为著名著作《结构化编程》的一部分[2]。
达尔后来的工作受到霍尔系统对程序进行数学推理的影响。他开始使用和教授这些推理技术,并认为它们甚至能改进非正式制作的程序。1992年,达尔出版了《可验证编程》,其中包括他自己的许多研究成果[9]。在20世纪90年代,他通过ABEL语言的设计和对面向对象系统的推理研究,回到面向对象编程。
达尔在与淋巴癌长期斗争后于2002年去世。他和妻子托夫有两个孩子,弗雷德里克和英格丽德。