口腔历史:迈尔·雷曼

来自ETHW
跳转到:航行,搜索

关于Meir M.Lehman

雷曼博士在英国长大,年轻时在墨菲电台工作。他早期对数学和科学的兴趣促使他获得了国家电子证书,并于1949年获得了国家技术奖学金,使他得以进入帝国理工学院。他获得了数学学位,然后在该机构开始研究生工作,从事早期的计算机项目。他在费兰蒂的伦敦实验室和以色列国防部进行计算机研究时获得了博士学位。雷曼于1957年获得博士学位,搬到以色列海法,继续为以色列国防部工作,设计低成本数字计算机磁芯存储器他帮助开发了第二地址寄存器(修改器)和印刷电路板的使用。

随后,雷曼兄弟搬到美国,在其约克敦高地实验室为IBM工作。在那里,他为超级计算机项目设计了运算单元,并研究了并行处理。1965年至1968年间,他管理了约克敦高地集成多处理器项目,该项目在硬件设计中使用了模拟。1972年,雷曼开始在帝国理工学院(Imperial College)任教,设计计算机和控制方面的本科课程。1979年,他成为该部门的负责人,并于1982年帮助成立了帝国软件公司。采访时,雷曼兄弟在20世纪80年代中期提前退休后,与帝国理工学院签订了兼职合同。

这次采访涵盖了雷曼兄弟多方面的职业生涯,重点讲述了他在IBM和帝国理工学院的经历。雷曼讨论了他的早期教育和大学教育,以及他的计算经验的进步。他解释了他与以色列国防部合作的项目以及他搬到IBM的决定。雷曼描述了他早期的计算机研究,包括他在串行和并行处理、磁芯存储器设计、算术单元设计和软件改进方面的工作。他回忆了计算机科学和控制领域的同事,并就如何提高编程效率发表了自己的意见。雷曼还讨论了他1979年到苏联的学习之旅、英国在软件领域的重大发展、英国早期的计算机项目以及软件工程的基础。这次采访以雷曼关于逻辑编程理论趋势的观点结束,这些理论趋势改变了软件和编程质量的标准。

关于面试

Meir M.Lehman:William Aspray访谈,IEEE历史中心,1993年9月23日

电气与电子工程师协会IEEE历史中心178号访谈。

版权声明

这份手稿仅供研究之用。手稿中的所有文学权利,包括出版权,均归IEEE历史中心所有。未经IEEE历史中心主任的书面许可,不得引用手稿的任何部分进行出版。

应向IEEE历史中心口述历史项目(地址:445 Hoes Lane,Piscataway,NJ 08854 USA)申请出版报价许可,或ieee-history@ieee.org。它应该包括要引用的特定段落的标识、段落的预期用途以及用户的标识。

建议引用以下口述历史:

Meir M.Lehman,美国新泽西州皮斯卡塔韦IEEE历史中心William Aspray于1993年主持的口述历史。

面试

采访:Meir M.Lehman

采访者:William Aspray

地点:英国伦敦

日期:1993年9月23日

背景和早期职业

雷曼兄弟:

我认为我应该从16岁的幼年开始,因为当时发生的事情对故事的其余部分产生了直接影响。我会尽量把事实真相告诉你。一方面不要过分吹嘘,另一方面也不要过于谦虚。我只告诉你事实。在这种情况下,这似乎是公平的。

Aspray公司:

非常好。

雷曼兄弟:

我十岁时父亲去世了。我母亲在三十五岁时成为寡妇,有六个孩子。我是第二个孩子,也是最大的儿子。这件事的意义在于,我必须在16岁时离开学校,以帮助养家糊口。当时我最喜欢的科目是数学,但我也很擅长物理和这类科目。我是学校里第一个参加高等数学入学考试的人,除了所有学生都参加的普通数学考试。碰巧的是,就在我参加高等数学考试的同一年,校长的儿子(他在一两年前入学)回来参加了高等数学考试。我想校长有点嫉妒我正在参加高等数学,并选择让他通过考试。总的来说,除了历史,我的入学成绩很好。这一点我完全搞砸了,因为我从来都不擅长那些必须学习而不是自己推理的话题。当时历史的教学方式没有给它留下推理的余地。

根据这些结果,我本可以上大学,也很想上大学,但正如所描述的那样,家庭环境使我别无选择,只能离开学校。1941年,战争的第二年,我开始工作。因为我多年来一直对收音机-我给自己造了一台收音机——我环顾四周,在一家叫墨菲收音机的公司找到了一份工作,我在那里加入了他们的服务部门。虽然当时是战时,但该服务部门负责维修民用无线电。

Aspray公司:

它位于哪里?

雷曼兄弟:

在韦尔文花园城。当时我住在赫特福德郡一个叫莱奇沃斯的小镇,墨菲家在韦尔温。当收音机来修理时,我的工作是把金属底盘从木箱或塑料箱中取出。我坐在“拳击和拆箱工作台”上。除此之外,我还必须每天打扫两次地板,并在早上和下午泡茶。我是一个很小的男孩。我做这项工作大约一年了,我感到相当沮丧,想做一些更技术性的事情。最后,我被允许走上工作台,开始焊接和修理设备。我不被允许测试他们,但所谓的“测试人员”会写在一张纸上“改变以下部分……”我随后会遵循这些指示。偶尔,我会得到一套完全烧坏的设备,必须从头开始重建,这一直是一个挑战。在那些日子里,重建是一项经济主张。当然,今天你会把它扔掉。

我做这项工作两年、三年或四年了,我感到非常绝望,因为我真的觉得我知道如何焊接,从内到外都知道组件的位置,到那时,我已经从头开始重建了几个组件。有一次,我的领班生病了,他负责整个车间,有三四十个人。他的副手——我不记得是我问的还是他自愿的——说:“你为什么不开始测试,而不仅仅是焊接部件?”他知道我的兴趣和技术背景。很快我就收到了一个万用表,也许是一个示波器,我不记得了,我开始实际测试收音机。我花了两周的时间非常开心,因为我终于达到了我的雄心壮志的顶峰——我真的实现了我想做的事。那时我一定已经18岁或19岁了。在享受了两个星期之后——我已经开始掌握诀窍了——工头回来了,他看到我坐在我的测试台上,说:“你在那里做什么?”于是我说:“我以为我被提升去参加测试了。”他说:“好吧,你没钱思考。回去吧。”这正是他的话。我非常不开心,但我当然别无选择。

另一个小伙子也对我们的待遇感到不满。因为人们认为平民拥有收音机很重要,所以我们被免除了参军的义务,尽管我已经到了军龄。我奋起反抗,自愿参军,因为我讨厌自己正在做的工作,但被拒绝了。“对不起,你正在做的工作太重要了。”这是一个保守的职业,至少对我来说是没有出路的。这种情况持续了两年左右。

当时我上了夜校,还上了电子学课程。在某个时间点上,政府允许该公司从仓库中取出一些不完整的底盘,我得到了完成这些底盘、接线和测试的工作。我住在一个相当大的房间里,一个人呆着,大部分时间都在听古典音乐,而不是继续工作。至少在我的记忆中是这样的。我一直喜欢古典音乐,我抓住了这个机会。无论如何,我在墨菲公司又呆了几年。那个告诉我没有薪水思考的工头说服我每周休假一天去伦敦参加一个为期一天的释放课程。在这门课程的基础上,我获得了普通高等国家电子证书。我考得不太好,但我设法通过了考试。在墨菲的最后一年,我从服务部搬到了测试仪器部,在那里我希望加入实验室,并被允许设计该部门的产品测试装置。事实上,我又被指派制作乐器。但有一天,我得到了一个测试仪器来设计。但即使在那时,我也没有被提升,也没有被允许加入实验室工作人员,但我仍然是一名装配技术员。我设计了我的第一台仪器,线圈比较器,用于测试生产调谐线圈的公差。1949年的这个时候,战争已经结束了,我已经和墨菲在一起八年了。我的生活似乎经历了七到八年的周期,正如你将看到的那样。

帝国理工学院

根据我的考试成绩和成绩,我获得了国家技术奖学金,这是为了那些因为战争而错过了学业的人。这让我终于上了大学。我想了很多——我应该学习电气工程吗?我应该回到我对数学的初恋吗?我决定回去学数学,并申请帝国理工学院(Imperial College),这是伦敦大学的一所附属学院,攻读数学学位。因为我十六岁就离开了学校,所以我不合格,所以我必须参加入学考试才能被录取。我来到学院,采访了数学系主任,他当时是利维教授,数值分析领域非常著名的人物。

我会给你讲一个有趣的故事,因为它很有趣。我不确定这是否相关。你可能需要过滤掉。他采访了我,说:“你必须参加四门考试,分别是纯数学、应用数学、物理和化学。”, “虽然过去七年我没有在这方面做过任何工作,但纯粹的应用数学和物理都不是问题。但化学是不可能的,因为在学校里我必须学一门外语。我在法语方面没有希望,但我出生在德国,我觉得我德语相当流利,尽管我知道1931年,六岁的时候,我们离开了德国,从未在那里上学,从我们搬到这里的那天起,我们就只在家里说英语。所以我不情愿地选择了德语作为我的外语。但在我们学校,时间表问题意味着一个人只能选德语或化学,所以我从未学过任何化学,也没有这方面的背景。在这方面,我与出生在德国有着进一步的联系。1930年11月,纳粹赢得了国会大厦37%的席位。当我父亲听到结果时,他说:“这不是犹太人的住处,我们要离开了。”因此,我们离开了德国,在纳粹上台前两年来到了英国。正是因为他的远见,我和我的家人才没有遭受欧洲犹太人的命运。

回到我对利维教授的采访。“好吧,”他说,“在这种情况下,如果你能通过纯粹的应用数学和物理,我会录取你的。”就这样。我开始为所有三个主题的入学考试做准备。事实上,我开始了函授课程。在适当的时候,我收到了考试的通知。当我收到这封信时,我注意到其中一份试卷,我忘记了是哪一份,是在犹太节日五旬节那天写的。作为一个正统的犹太人,我不可能在那天发表论文。所以我给利维教授写了一封信,说我收到了考试通知,作为一个正统的犹太人,我不可能在那天参加考试。我问,“能不能在前一天或后天让人监督我,确保我没有与他人接触?”,“非常抱歉,雷曼兄弟,但你应该早就知道这次考试的日期了。我已经妥协了,让你放弃化学。恐怕你只能坐在这张纸上,否则就忘了帝国理工学院。”

所以我回信说:“亲爱的利维教授,谢谢你的来信。我很理解你的反应,不能与之争辩。另一方面,我担心,当危机来临时,我的宗教会排在第一位。我无法妥协,虽然我对此感到非常难过,但我们不得不放手。”我收到了利维的另一封信。我应该在这里提到的是,除了作为一名数值分析师的名声外,利维还是英国共产党主席和公认的无神论者。他于1956年离开党,以抗议匈牙利入侵,但当我见到他时,他仍在党中。无论如何,无论他的个人信仰是什么,在回信时,我收到了他的另一封信,信中说:“谢谢你的来信。说实话,我只是想看看你有多真诚。因为你很明显非常真诚,所以一切都很好,没问题,你可以参加前一天的考试。”我觉得这太棒了。我一生中最大的遗憾之一是,当我回到帝国理工学院当教授时,他还活着,但我没有去看望他。

我于1950年10月加入帝国理工学院,开始了为期三年的数学学位课程。在那些年里,我变得很沮丧,因为我真的没有很好地应对学习。我最终获得了学位。但据我所知,只获得了较低的二级学位,远远低于等级。这很艰难。我只是觉得我不是很聪明。1949年至1953年的这个时候,我正处于20多岁的中期,直到许多年后,我才意识到真正发生的事情是我,一个20多岁、相对成熟的人,和十几岁的年轻人坐在一起。当一个人教书时,他就在一定的水平上教书。一个人说的是谎言和半真半假的话,事实上,每次讲座开始时,大约五分钟后,我都会说一些我觉得不太清楚的话。我会发现我听到的话中有一些问题。现在我有一种一次只能处理一件事的头脑,所以我在试图解决这个问题的时候,演讲中的大部分内容都丢了。我迷失了方向,不是因为我愚蠢,而是因为我看到了我不想看到的东西。除此之外,我还有另一个问题——直到50年后我才发现——我对某些食物过敏。这让我昏昏欲睡,“累得要死”。我去看医生,说:“我总是很累。我很容易睡着。”他的回答是:“你显然工作太辛苦了。你为什么不去打猎或钓鱼,或者至少在下一个暑假去巡航。”

无论如何,我成功地通过了这门课程,并获得了学位。基于我的背景,我被电气工程师学会授予费兰蒂研究奖学金。我真的打算去研究量子力学。当时我住在一家旅馆里。我在旅馆的一个朋友有一个兄弟,他是自以色列国宣布进入英国港口以来第一艘以色列货轮上的水手。因此,1953年晚上,在我写最后一篇量子力学论文之前,我们去了码头看望了他的兄弟。我们都很兴奋。不幸的是,在回来的路上我们迷路了。我早上两点钟左右才上床睡觉,所以第二天早上就被水洗得干干净净了。我的量子力学试卷完全不及格。因此,当我去找琼斯教授,问他:“我能成为你的研究生吗?”他的回答是:“根据你论文上的结果?”

数字中继计算机和ICCE 2

雷曼兄弟:

当时,有一位基思·托彻博士(Dr.Keith Tocher),他与悉尼·迈克尔森先生(现为教授)(后来在爱丁堡大学(University of Edinburgh))一起在帝国理工学院设计和建造了一台数字中继计算机。不幸的是,他们的工作从未在计算机界广为人知。如果有人写一本关于计算历史的书,他们应该好好看看这台特殊的机器。它被称为ICCE(帝国学院计算引擎)。这是学院内第一项关于计算的工作,他们与埃塞克斯大学(University of Essex)教授托尼·布鲁克(Tony Brooker)以及之前在曼彻斯特(Manchester)的教授一起建造了它。他们建造了一台非常有趣的中继机,具有一些非常非常特殊的功能。例如,他们没有将指令和数字存储在冯·诺依曼同店时尚;他们有单独的指令和数字存储。他们也有可变长度的指令。指令的长度取决于指令的复杂性。这几乎是RISC的指令方法。

中继机位于帝国理工学院数学大楼内,该大楼被称为赫胥黎大楼,与科学博物馆相对,该大楼现在是维多利亚和阿尔伯特博物馆的扩建部分。中继机刚刚开始在一楼夹层上运行,然后他们正在考虑是否建造一台电子机器。我去见托彻,说:“我想和你一起就这台机器的建造取得博士学位。”考虑到我的电子学背景加上我现在的数学背景,他说:“当然可以。”这就是我进入计算领域的原因。那是在1953年,所以你会注意到今年是我在这个领域的40周年纪念日。

Aspray公司:

当时,你对这些机器了解很多吗?

雷曼兄弟:

不,什么都没有。我真的是从一楼开始的。我的工作是为那台机器设计运算部件。我花了两年的时间学习——我只有两年的奖学金。但我的眼睛有问题。我做了斜视眼手术。如果你看我的眼镜,你会发现它们是很重的棱镜。从这个可见的斜视来看,我倾向于看到双光。这引起了很多麻烦。最终的结果是,我的奖学金被暂停了一年,学院为我支付了费用。所以我花了三年时间攻读博士学位。在这段时间结束时,我已经为ICCE2设计了一个算术单元,它本来是一台电子机器。

算术单元设计的主要创新是我想出了一种新的乘法算法。我直觉上觉得这一定是最佳算法。我很确定这是算法的基础,现在所有乘数都使用这个算法,因为它显然是最快的。我的导师托彻随后发表了一篇论文,他在论文中证明了这实际上是最佳乘法算法。我不懂数学,但他在那里做得很好。有趣的是,后来我找到了不少于13种不同的出版物,在我首次公开这一乘法算法后的十年里,这些出版物描述了这一算法。

我记得我给ACM通讯社写了一封信,指出每个人都在重新发布这个算法,事实上,最初的算法已经在1956年发表在我的博士论文中。无论如何,这既不在这里也不在那里。我自称是该算法的作者,但许多其他人也这么认为,因为当时的普通乘数只是对乘数求和,而不是将适当移动到累加器的乘数相加——只要遇到“一”。我的算法在一系列1后面遇到0时添加乘数(从右边扫描),或者在遇到0后面的1时减去乘数。但这里不是详细描述此算法的合适位置。但ACM通讯中有一封信对其进行了详细描述,正如我已经说过的,至少还有13位其他作者也发表了这封信。如果你有兴趣追踪它,我可以给你一份我的出版物清单。

Aspray公司:

好的。

雷曼兄弟:

当我们开始这个项目时,利维教授仍然是数学系的系主任。当我们走到一半的时候,量子力学教授琼斯(Jones),他拒绝了我的研究生(博士)身份,成为了海德。顺便说一句,我想我应该指出,我用的是“部门主管”这个词,而不是主席。你知道英国和美国在部门管理方面的差异吗?

Aspray公司:

不,我想我不是。

雷曼兄弟:

1979年,当我成为计算机(和控制)系主任时,任命我的校长布赖恩·弗劳尔斯博士(现为FRS校长)说:“首先,你应该理解美国主席和英国主席之间的区别。部门主管。一位美国主席代表他的同事前往大学行政部门。行政部门是老板,部门代表与他们谈判。一位英国部门负责人向同事们代表政府,是他所调查的一切的主人和主人。“他真的是老板,他想做什么就做什么。事实上,大学能够控制他或她的唯一方法是通过预算。资金仍然通过整个机构来筹集。”。

Aspray公司:

我懂了。

雷曼兄弟:

回到主题。那时我快要完成博士学位了,琼斯是系主任。琼斯坚信数学家不应该沾沾自喜,他实际上扼杀了ICCE 2项目。在我看来,这并不重要,因为我或多或少完成了论文的工作,尽管我还没有把它写出来。我已经申请并在费兰蒂找到了一份工作,正是这些人为我的研究奖学金负责。所以我搬到了费兰蒂的伦敦实验室。托彻和迈克尔森当时正在制造这台电子机器,他们都非常反感,都辞职了。托彻去了英国钢铁公司(British Steel),在控制论领域工作,斯塔福德·比尔(Stafford Beer)主要是一名数学家。迈克尔森最终也搬了出去,去了爱丁堡。事实上,他成为了英国计算机界的领军人物,这一地位一直维持到两三年前不幸去世。

在Mercury计算机上工作

Aspray公司:

我模模糊糊地记得,但我可能记错了,A.D.Booth和帝国学院有关系?

雷曼兄弟:

不,A.D.Booth,顺便提一下,他是我博士学位的外部考官,当时在伯克贝克学院。当然,他是英国大学生活中最早的计算机人之一。

所以我加入了费兰蒂的伦敦计算机实验室,尽管我还没有写博士论文。我的主要职责是对当时新Mercury电脑的使用进行可行性研究。我也熟悉了飞马座计算机,但我的主要任务是分析水星计算机,以确定其是否适合控制英国第一枚弹道导弹“蓝条纹”。当时,蓝条纹正在开发中,并正在澳大利亚进行测试。我花时间往返于伦敦和曼彻斯特之间。

搬到以色列和SABRAC机器

雷曼兄弟:

当我在帝国理工学院时,我遇到了一位名叫塞德鲍姆的中年人,他在以色列国防部工作。他在这里攻读博士学位,也攻读数学。他实际上是一个模拟计算的人,但他正在攻读数学学位。在与他讨论我的兴趣时,他说:“你愿意加入我们吗?我们没有数字计算机小组,但你可以成立一个部门,开始一些数字计算机工作。”,后来被称为以色列国防部武器发展局(RAFAEL)。我欣然同意了。

我于1955年10月加入费兰蒂,但在1956年1月或2月,我和妻子决定于当年8月或9月左右移民到以色列,我将加入国防部科学部。六月或七月,苏伊士战争爆发。我靠奖学金生活,这是一笔非常低的收入,我无法积累任何积蓄,我们依靠教育部在海法为我们提供合适的住宿。因为战争的原因,他们要求我推迟来年。苏伊士战争后,情况一团糟。他们晚些时候才能得到我。我的反应是对我的妻子说,“一旦我们去了以色列,我就永远不会完成我的论文。如果我现在没有拿到博士学位,我永远也不会拿到。”因此,在1956年9月至1957年2月,当我们要去以色列的时候,我写了我的论文。在适当的时候,我进行了口试,经过一些拼写错误和一两个小错误的纠正,我于1957年获得了博士学位。

我们于1957年2月按计划前往以色列,我加入了以色列国防部。我带着制造一台机器的想法去了那里。我找到了另外两个有兴趣和我一起工作的人。我没有任何正式的项目来建造这台机器,但我们还是开始了工作。基本上因为我没有预算,我说我们要建造一台成本最低的机器。整个项目的想法主要不是为了建造最好的机器,而是为了学习和演示技术。因此,在这个项目中,除了我之外,还有两名工程师,他们将进行电路设计。因为它是一种成本最低的机器,所以它必须是串行机器,而不是并行机器。出于现在不重要的原因,我们决定使用36位数字表示法。唯一可能负担得起的存储设备是磁鼓,而经济因素迫使我们选择4096字的容量。

我们开始了设计工作。1959年,在巴黎举行的第一次联合国教科文组织计算机会议上,我准备并提交了一份名为“最低成本机器”的论文。该论文对设计进行了分析,并描述了我们将如何以一万美元的价格建造这台机器。我记得我和一位IBM代表大吵了一架,因为我的分析表明当时机器50%的成本反映了销售成本等诸如此类的东西。实际的组件成本只是其中的一小部分。事后来看,我必须承认这是一个非常幼稚的分析。无论如何,IBM根本不喜欢我说的话。我提交了这篇论文,并在联合国教科文组织会议的一次新闻发布会上简要谈到了这篇文章。

与此同时,我得到了出去招聘程序员的许可。所以我找到了一位年轻女士,她在Elliott Brothers做程序员,当然是机器语言编程。她也对来以色列感兴趣,所以我招募了她,在接下来的几个月里,我们组成了一个四人团队。你会在其中两篇参考文献中找到他们的名字,因为随后,当机器设计和运行时,我们发表了两篇论文,其中一篇发表在ACM期刊还有一个在IEEE电子计算汇刊。机器的名称是SABRAC。我的参考列表上有精确的参考。顺便说一句,你想要的任何文件我都可以拿来。我的大部分论文都还在,我相信我能拿到。

Aspray公司:

谢谢您。当时,在以色列还有什么其他的计算机?

雷曼兄弟:

当时以色列只有一个其他的计算机项目,那就是魏茨曼研究所,他们正在那里建造WEIZAC 1。

Aspray公司:

哦,那是格里·埃斯特林。

雷曼兄弟:

没错,格里·埃斯特林和他的同事。那是我第一次见到格里。佩克里斯教授当时是数学系主任,但他是一位数学家。格里是工程师。他们的机器是JOHNNIAC 1的复制品,而我们的SABRAC机器是全新设计的。SABRAC确实是一台非常有趣的机器,从相关论文中可以看出,它有许多创新之处。我们的预算问题带来了许多设计方面的问题,但最终这些问题本身很重要。我们不得不认真思考如何在经济受到严格限制的情况下最大限度地利用机器。如果我们为其中两三个想法申请了专利,并将其投入到机器中,我们在财务上就会遥遥领先。其他概念来自Ferranti-Pegasus机器。一些哲学来自ICCE 2。因此,SABRAC血统是可追溯的。例如,我们有多个长度的指令,每个位控制发生的事情。这使得指令解码更便宜、更简单,几乎是一种微程序设计。

SABRAC创新

雷曼兄弟:

我们还特别提供了两个当时具有创新性的功能。在一种情况下,它们绝对是新的,而在另一种情况中,我不确定时机。在我们已经致力于磁鼓存储器之后,磁芯存储器变得可用。我们决定不需要一台基于最佳编码的机器,这样可以解决磁鼓的访问时间问题。我们买不起1000字的磁芯存储器。那是前所未有的奢侈。我们决定只放入128个单词的磁芯,这几乎是我们能承受的最大值。但我们如何才能有效地利用这一点呢?我们想出了一个方案,实际上是分页和间接寻址,或者曼彻斯特人所说的B寄存器,后来被称为修饰符。我们的推理如下:“假设我们没有将磁鼓作为机器的主存储器,而是将128个磁芯位置作为主存储器。这样,我们就可以在内存中只保留少量数据和指令,并根据需要从磁鼓中引入更多数据和指令。”

但后来我们问,“该装置仍需等待转鼓。”解决方案是什么?“将256个位置分为两组,每组128个位置,并使其可切换,以便在任何给定时刻,其中一个位置充当计算机中执行的控制和数据存储器,而另一个位置则从磁鼓中卸载或加载。”,“这将不允许从一个内存块连续执行到另一个。”因此,我们实现的最终方案是一个七页内存,每个32个字组成两个128字的内存系统。地址0到31寻址同一物理内核,并在两个系统之间共享。地址32到127在两个系统中重复。因此,系统I和系统II的地址范围分别为1到127,共有0到31个。然后,我们有一个“更改系统”命令来切换I和II的角色,以便在任何时候,128个位置的一个系统充当主内存,而其余96个位置可用于并行执行连续性的自动内存/磁鼓传输。也就是说,我们已经实现了并行执行。然后,我们进一步推论,“如果一个人可以拥有鼓传输的自主性,那么他也可以对输入/输出这样做,那么为什么不允许在程序执行的同时,在内存系统和纸带输入输出设备之间进行传输呢?”我相信,我们在1960年发明了自主或并行操作的概念。我们肯定是第一个在1960年构思、1962年实施并使用自主并行输入/输出概念的人。

这一概念直接导致了第二次创新。我们争论过, “考虑到如此小的内存空间和可切换的页面,绝对指令地址不能嵌入到程序文本中。我们需要能够将程序放入该内存的任何位置。为什么我们没有一个寄存器来放置基址引用,通过更新该数,我们实际上可以将信息、数据和程序f总内存空间中的ree位置,即128个位置中的任意子集。所以我们发明了B行或修饰语的概念。我们把修饰语称为“第二地址寄存器”。“我相信威廉姆斯教授大约在同一时间在曼彻斯特大学设计并实现了相同的概念。他们将其命名为“B”线(在CRT存储器上),其中A线是累加器。但我们不知道他们的工作。

Aspray公司:

你从美国或英国获得了哪些文献?

雷曼兄弟:

如果我没记错的话,我们收到了诉讼交易电气与电子工程师协会以及通信ACM的。因此,我们与世界保持了良好的联系。

自主传输、寻呼和地址修改并不是SABRAC的唯一创新。该机器是以色列第一台使用晶体管的机器。例如,WEIZAC 1仍使用热离子阀。你会说管。我们也是以色列第一个使用印刷电路的国家。科学系里有一位化学家,俗称普希金,当时我不明白为什么,但很快我就明白了。他开始尝试蚀刻镀铜电路板,所以我们设计了自己的印刷电路板,并按设计订购了印刷电路板。他们的返回是另一回事,交付需要数月时间。他总是有一个很好的借口来解释为什么某一批打印的卡片没有按时送达。但在项目结束时,我们得出结论,他完全没有能力按时交付任何东西。但最终我们得到了它们,机器被制造并调试。

除此之外,这台机器成为了上述乘法器算法的测试台,我们首先使用软件模拟对其进行了调试,机器的其余部分也是如此。

大卫·本·古里安和SABRAC

最终,SABRAC开始运营。甚至在那之前,首相兼国防部长本·古里安(Ben Gurion)按照惯例每年都会来实验室参观一次。1961年,他的参观包括我的实验室和SABRAC。在那次参观期间,实验室里只有三个人:本·古里安(Ben.Gurion,Shimon Peres),当时的国防部总干事,现任外交部长(1993年),和我。本·古里安问了我三个问题。第一个问题是,“有多少人在制造这台机器?”我回答说,“四个人加上偶尔的技术人员帮助。”然后他问,“建造这台机器后,我们在二十年内能做什么?”。

我说我认为数字技术是未来的技术,二十年后一切都将计算机化。他似乎对我的回答感到满意,然后问第三个问题:“你为什么来以色列?”佩雷斯告诉他,我是从英国来到以色列的。我还没来得及重播,佩雷斯就说:“哦,雷曼兄弟是虔诚的。一定是他的宗教感情把他带到了这里。”本·古里安抬头看着我,低头看着我,问道:“但如果你是虔诚的,你的小鸭呢?”他太小了,他看不到我头顶上是什么!(笑声)这就是我对本·古里安的美好回忆,是我唯一一次见到他。

这次访问产生了直接后果。到那时为止,尽管SABRAC几乎投入运营,但我们的工作没有预算。我们所有的东西都是偷来的、乞讨的或借来的。但在本·古里安来访后的三周内,我收到一封信,说我得到了完成这台机器的预算。我们终于有了适当的预算来工作,不久之后,机器投入使用。许多人开始使用它,特别是一位名叫Menat博士的科学家,他用它设计了以色列第一枚陆海导弹Gavriel的红外光学系统。所以SABRAC不仅仅是一台实验数字计算机;它实际上被使用了。

1962年末的某个时候,本·古里安(Ben Gurion)退休了,新任首相列维·埃什科尔(Levi Eshkol)参观了实验室,这次参观再次包括SABRAC。但这次,整个高级司令部都来到我的实验室参观机器。我有三四十个人挤在房间里。到那时机器已经投入运行,我们已经编写了一个播放以色列国歌的程序,这是标准演示之一。埃什科尔也问了我两个问题。第一个问题是“这台机器的建造成本是多少?”第二个问题是,“我们在美国可以花多少钱买它?”故事结束。两三个月后,特拉维夫国防部的一位高级官员告诉我,最高级别已经决定停止所有有关数字计算机的工作。我可以选择要么转到运筹学小组,要么从科学部辞职。现在我觉得无法切换到运筹学。另一方面,当时我有一份邀请,邀请我加入约克敦高地的IBM研究中心。所以我怀着沉重的心情,因为我和妻子都不想离开以色列,所以我决定辞职加入IBM。

在约克敦高地加入IBM

雷曼兄弟:

IBM的提议是以以下方式提出的。1963年,在第一届国际图联(巴黎)上,我与墨西哥大学的贝尔特拉诺教授进行了简短的讨论,我应邀参观了该大学,并开设了为期三个月的计算机设计课程。我利用我一生中的机会,访问了美国。当我请求允许去的时候,该部的代表说:“是的,很高兴,只要你不去求职。”所以我答应我不会去求职。

当时我有一个堂兄,他在约克敦高地的化学系工作。当我到达美国时,他建议我去那里看望他,他还会安排我去计算机科学系。所以我去了约克镇高地。当我到达那里时,我的堂兄说:“我想我应该告诉计算机科学系主任你在这里。然后我会设法找出谁可能有兴趣见到你。”于是他打电话给主任,把我带到他的办公室。在初步介绍之后,他对我的堂兄说:“十五分钟后回来接雷曼博士。”然而,十分钟后,他拿起电话,打电话给我的堂弟,说:“算了吧。我会照顾他一整天。五点半从我的办公室接他。”

然后我进行了巡视,会见了不同的经理。当天结束时,董事说:“我会在这里给你一份工作。”我回答说:“很荣幸我不去求职。我本来想在这里工作,但在这种情况下,我不能考虑来。”他回答道:“不管怎样,我们会给你发一份工作邀请。”事实上,我在墨西哥时收到了IBM的工作邀请信。我回答说,因为我很荣幸不去求职,所以我不得不不情愿地拒绝了这份工作。然而,在我回来后不久,我收到了最后通牒,如上所述,要么转到运筹学,要么辞职。我和妻子讨论了这件事,她绝对不想去美国,但我指出,“我们真的别无选择。我没有其他工作。”

以色列放弃数字研究

雷曼兄弟:

我应该在这里指出,外交部的决定背后有更多的原因,只是短视。

Aspray公司:

你能解释一下吗?拜托。

雷曼兄弟:

有三种不同的解释。我只想谈谈其中一个。当时,以色列国防组织内的一些单位正在建立一个主要的计算机中心。他们希望购买一台Philco 212,一台当时刚刚上市的机器。这些人担心,发展本地制造计算机的技能将危及他们获得在美国购买机器的预算的机会。当然,这是胡说八道,因为我们不可能与Philco或任何其他制造商竞争。然而,他们是反对科学部继续开展数字计算机开发工作的强大力量,希望自己成为国防部计算机活动的焦点。因此,他们在迫使我出局方面发挥了作用。

算术单元设计;并行计算

雷曼兄弟:

经过长时间的讨论,我和妻子决定,如果IBM Research,Yorktown Heights的报价仍然有效,我们将加入他们两三年。在那之后,我们将返回以色列,因为我们心中没有任何疑问,那就是我们真正想去的地方。所以我回信给IBM,问:“你的报价还有效吗?”回答是:“是的。”1964年8月,我们作为移民航行到美国,去了纽约的蒙西,我堂兄和他父母也居住的城镇。我们选择了这个地点,距离我要工作的约克镇大约30分钟车程,因为我们需要让我们的四个孩子随时接受犹太教育。因此,我加入了约克镇IBM研究院的计算机科学部。结果他们对我的算术单元设计背景感兴趣。已故的杰克·贝特朗(Jack Bertrand)后来成为IBM副总裁,当时是计算机科学部主管。他和Herb Shaw(现在在洛杉矶的ISI)一起想建造一台超级计算机,并希望我为其设计运算单元。

这种算术单位的背景是什么?为了解释这一点,我必须再次回溯。我已经提到1959年在巴黎举行的第一次联合国教科文组织会议。我还谈到了它的后续行动,即1962年在慕尼黑举行的第一次IFIP会议。为了这次会议,我准备了一篇论文“进位加速电路的比较”,这反映了我对算术单元的持续兴趣。那时,有八到十种不同的方法可以加速电子数字计算机中的基本加法运算。并行算术单元设计中的基本问题是,当有0和1的链要相加时,并且在最坏的情况下,必须从加法机制的最低端传播到最高端时,实现进位的高速传播。最终,进位传播机制的速度决定了整个算术单元的速度。

在慕尼黑IFIP大会上,我发表了一篇论文,对不同的提速方法进行了比较和评估。在回家的路上,我记得当时在想,“嘿,这太疯狂了!如果我看一下最有效的并行运算单元,那么只有大约33%的硬件实际在进行运算,66%的硬件与加速有关。换句话说,由于进位加速成本的原因,最快的运算单元的成本至少是最慢单元的三倍。所以我对自己说:“嘿,如果不是在并行机中有一个n位宽并行运算单元,而是有n个串行机,并且构建了一个高级并行机,它能够同时执行多达?条指令流,那不是更经济吗?”,当时,机器仍然是由谨慎的部件制造的,而不是由集成电路制造的。同样的论点今天也不成立。

考虑到这个问题,我意识到如果你考虑并行性的问题,无论是在位级别、一个极端还是在作业级别的另一个极端,那么你要支付的主要部分是通信开销。而且开销与并行度不成正比。并行度越高,所需的通信总量就越小。开发并行性的正确方法不是从设计的底部开始,而是从工作负载的顶部开始。然后,当你拥有尽可能多的并行度,并行地运行作业时(那时没有人听说过多道程序设计),你再往下走一层,看看能否将单个作业分解成任务,然后很快分解成更低的级别。只有在万不得已的情况下,如果您仍然需要额外的速度,才可以在位级别进行并行化。我决定未来的道路是走向并行机。因此,我来到纽约的IBM,希望研究并行计算和并行处理,而不是设计更快、更高速的并行运算单元。

现在我不是第一个想到并行计算的人。斯洛特尼克已经提出了他的所罗门机器。但所罗门机器是一个向量,而不是一个并行处理器。我的目标是构建一个并行处理器,一个可以将大型计算分解为(几乎)独立任务并并行执行这些任务的系统。所以我带着这个目标来到了IBM。只有当我到达约克镇时,我才发现我被雇来设计一个高速、流水线、并行运算单元。我对整个想法持反对态度,因为我确信,实现更高速度计算的整个方法必须是自上而下的,从多个处理器、多个作业和任务流开始。所以我和杰克·伯特伦闹翻了,有点像是自己在等别人给我工作。

渐渐地,我与唐·森齐格(Don Senzig)交上了朋友,他也对并行计算感兴趣。我们与杰克·罗森菲尔德(Jack Rosenfeld)一起撰写了许多关于并行计算数学方面的论文。与此同时,伯特伦和他的“得力助手”赫伯·肖尔带着国防部的一大部分人去了加利福尼亚州,建造了一台高度并行的机器。我被甩在后面是因为我对设计ACS(高级计算系统)运算单元不感兴趣,认为这是寻找性能的错误方法。顺便说一句,ACS项目失败的原因有很多,包括以下事实吉恩·阿姆达尔该项目的首席架构师强烈反对伯特伦提出的最佳解决方案。因此,他,吉恩,离开了IBM,继续建立自己的公司,按照他认为应该设计和制造的方式制造机器。

让我重述一下。Gene Amdahl最初是ACS项目的首席架构师,但他和Bertram就管道或其他技术的更好之处发生了争执。我对这两种方法都持不同意见,并认为这两种技术都不能代表最佳的前进方向,原因有几个。其中包括为流水线机器进行编译以保持管道充分利用的问题。这代表了一个尚未解决的问题,也可能是无法解决的问题。因此,无法有效地导出流水线,而在集成电路出现之前用于构建高速并行运算单元的分立元件的导出效率很低。为了追求我自己的愿景,我邀请了一名博士生研究堡垒同时,我继续编写项目建议书,以构建并行处理系统。

IMP项目

雷曼兄弟:

1965年,我被任命开始一个名为project IMP的项目,这是集成多处理器的缩写。1965年至1968年间,我担任IMP项目经理。该项目经历了三个阶段。第一阶段是为机器设计硬件,我们模拟了机器的操作,以评估设计并获得并行计算的实际经验。想法是构建一台处理器数量可变的机器,可能有16或32个处理器访问64个内存模块。但他们必须同时访问这些内容,我们研究了内存干扰问题和其他各种问题。

经过大约一年的工作,我们完成了我们认为令人满意的设计。例如,我们建议使用横杆开关进行处理器/内存通信,还建议使用“交互”通信设备进行处理器/处理器通信,以促进工作负载分配。我们还提出了一种用于任务生成、分配和合并的指令集寻址机制。我敢说,现代并行机的大多数概念都是在这种体系结构中。第一年年底,我们意识到我们设计了一台纸上机器,用当时可用的技术无法制造。但我们也意识到我们解决了错误的问题。考虑到这一挑战,任何傻瓜都可以把硬件组合起来构建一台并行机器。问题不是构建并行机,而是驱动它使其保持繁忙。

因此,我们花了大约一年的时间设计我们所称的执行系统。我们创建了一个执行系统来驱动我们设计的硬件。在一年或一年半的年底,我们意识到我们有一个执行架构,但我们又一次解决了错误的问题。鉴于这一挑战,认识到一个人需要一个执行系统来驱动、控制和开发硬件,任何(智能)傻瓜都可以指定或设计它。真正的问题是如何将设计经验从一个系统传递到另一个系统。因此,我们花了大约一年的时间研究并行机环境中的设计方法。这项工作产生了一两篇颇具原创性的论文,尤其是Zurcher和Randel的IFIP 68论文。IMP项目作为一个整体在1966年的一篇论文《并行计算和并行计算机》中首次公开,该论文发表在IEEE会议记录数字计算机和计算。它一定是有史以来发表的第一篇并行计算论文之一,但至今从未被提及。没有人再记得了。啊,在那里,是的,IEEE会议记录第54卷第12期,1966年。

1968年模拟研讨会

雷曼兄弟:

在那个项目中,出现了一个有趣的创新。我最初在海法使用仿真来调试SABRAC上的乘法器。随后,我通过在IMP项目中使用仿真来研究内存干扰问题和执行系统的其他方面,从中受益匪浅。大约1968年,我在IBM的其他地方看到了一篇文章,他也在硬件设计中使用了仿真。我打电话给作者,我说:“我看到你用模拟进行硬件调试,我们在IMP项目中也一样。为什么我们不聚在一起谈谈我们所做的事情——也许我们有很多东西要相互学习。”他说:“很好,但我知道另一个小组也在做同样的事情。为什么我们不能让他们也参与进来呢?”所以我们打电话给他们,他们说:“啊,但我们知道第四组。”

最终,我们在IBM确定了一百多个不同的小组,他们都在以这样或那样的方式使用模拟,没有一个人与其他人交谈过。因此,我组织了一个为期四天的研讨会,名为SIMSYMP 1968,这是IBM所有团队以某种方式使用模拟的聚会。共有三卷诉讼。论文包括Brian Randell和Frank Zurcher的论文,论文名为“多层建模”,如上文所述。这个最原始的概念后来变得越来越重要。它是Niklaus Wirth的连续改进概念的先驱,是一种程序设计方法。

1968年,当时的计算机科学系主任亨利·恩斯特(Henry Ernst)辞职。赫伯·肖(Herb Shaw)因反对他的算术单元设计概念而引起了我的反感,他重新担任了系主任。他从杰克·伯特伦(Jack Bertram)那里学到了管理技能,他的原则之一是,当一个人接管一个部门时,他会解雇当时所有的经理。实际上,肖关闭了IMP项目。他告诉我,在我从研讨会回来的那一天,该项目也被关闭了,我基本上被告知要在研究部为自己找一份工作。

编程生产力研究

雷曼兄弟:

两三天后,1968年11月,阿瑟·安徒生(Arthur Andersen)博士——一位物理学家,而非会计师——向我走来,他当时是研究主任,通过使用IBM的TSS-67从纸笔编程转换为交互式编程,他们的编程效率提高了三倍。Anderson对我的评论是,我引用了Sackman等人的话:“看,这是一篇论文。贝尔实验室能做的任何事情,IBM都能做得更好。你能花几个月甚至一年的时间研究一下IBM内部的编程,并提出一些研究项目来帮助IBM提高生产率和编程能力吗?”

正是这项任务改变了我的职业道路,使我朝着一个方向前进,我已经追随了25年多。我首先去了印第安山,与一些相关人员交谈,开始了调查。我在离开时确信,将编程效率提高了三倍的说法是正确的。但我也意识到,虽然他们在生成和测试本地正确代码的速度上实现了三倍的增长,但程序员将注意力集中在屏幕上的代码上的结果是整个系统被破坏了。他们正在制作非常详细的程序文本和代码,在现场测试时看起来非常完美。但他们正在看不见森林里的树木。他们的共同努力是创建一个最终将无法维护的系统,因为单个程序员很少注意到其他人在做什么。虽然以每名程序员每天的代码行数衡量的净生产率有所上升,但整个项目的总生产率,尤其是软件产品生命周期内衡量的总生产率可能已经下降。

对Indian Hill的访问启动了一项为期9个月的研究,该研究总结为一份报告“编程过程”。该报告的每一个字今天都和我25年前写它时一样真实。这并不是我唯一一次有幸——我不确定是不是运气好——比我的时代提前了十到二十年,结果是工作被忽视了。后来,我说的话被别人重新发现了。我不应该说这些话,但我会说的。你知道这本书吗?

Aspray公司:

我不知道这本书。

编程出版作品

雷曼兄弟:

可以。这是莱斯·贝拉迪和我写的一本书。你知道这本书的名字吗?

Aspray公司:

是的,我喜欢。

雷曼兄弟:

它被称为程序演化:软件变更过程其中一篇论文是1969年的报告《编程过程》,该报告的灵感来自萨克曼的论文和我随后的研究。所以今年,1993年,是我的银禧年。这是一篇非常有见地的论文。直到多年后,我才明白我所看到的一切。我花了九个月的时间做这项工作,与数百人交谈,思考了很多,把一切都写下来,做了一份报告,然后保持沉默。没有人感兴趣。这只是在它的时代之前。人们不明白我在说什么,它只是没有以任何方式下沉。在报告完成时,IBM的董事已经更换,新的董事,Ralph Gomory博士,一位数学家,只是对软件问题和软件技术不感兴趣。于是,我被调到了计算机系统部,承担了一些规划任务。

同时,根据我的发现,在编程过程研究期间,我开始了自己的工作,然后与Les Belady一起研究一项我们称之为“编程增长动力学”的发现。这直接来自我对IBM OS360操作系统增长的观察和数据。它表明,一个软件的增长似乎有其自身的规律性动态,可以对其进行分析,并用于规划系统的进一步发展及其演变。最后,我们将研究领域的名称改为“进化动力学”。我们构思了与软件相关的“进化”一词。今天,这种现象再次得到广泛认可,但当时还相当未知。我想我们是第一个使用这个词的人。实际上,是莱斯在帝国理工学院访问期间说,我们必须改变项目动态。他说,“为什么我们不把它叫做程序进化,因为这就是它的本质。”所以这个想法属于他。

求职和帝国理工学院主席

雷曼兄弟:

回到历史回顾,大约在1971年,特德·克利米斯(Ted Climis)给研究主任写了一封信,问他是否可以借我三个月,因为波基普西开发实验室对我在程序进化和OS/360增长方面所做的一些工作感兴趣。在后来泄露给我的一封信中,戈莫里回信给克莱米斯说:“当然,你可能有雷曼兄弟,既然你有他,为什么不留着他呢?”所以我得出结论,IBM对我来说没有未来。一旦你的档案上有这样的信,就别想它了。

碰巧的是,大约在那个时候,我的妻子和五个孩子自1957年离开英国前往以色列以来,第一次到英国避暑。我妻子在美国从来都不快乐,因为她在以色列过得非常快乐和放松。有几次我试图回到以色列,特别是回到海法国防部实验室。但我基本上被告知,他们没有一份对我来说足够高级的空缺工作。我的回答是,“我非常渴望回到以色列,我会接受任何东西,无论它是否足够高级。”他们的回答是:,“对不起,如果你回到一份低于你应该做的工作,你会不高兴,你的老板也会不高兴。你的老板会感到威胁,你也会不开心,因为你没有承担你想要的责任,所以不,我很抱歉,我们不能让你回来。”

我还向海法的Technion申请加入他们的教职。当时的计算科学活动是在数学系进行的,他们的回答是“不,你是一个硬件人员,我们对硬件不感兴趣。”计算机科学家一直被计算机科学这一数学分支的概念所困扰。所以我被他们拒绝了。魏茨曼研究所也对我不感兴趣。我之前在国防部为魏茨曼学院设计WEIZAC-2机器的运算单元。再一次,在那个特定的时候,我的想法与他不同——他叫什么名字?

Aspray公司:

雌激素?

雷曼兄弟:

不,不是杰里·埃斯特林,是什米尔·鲁曼。埃斯特林当时是一名顾问,但却是鲁曼,他对我的观点感到不满意,我认为电脑只和驱动它的软件一样好。我们只是意见不一致。所以,我在以色列找不到工作。因此,1971年,当我的妻子和孩子们访问伦敦时,我于8月在去南斯拉夫杜布罗夫尼克参加71年IFIP会议的路上短暂地与她会合,她说:“曼尼,我不会回美国。我在英国很高兴,我想留在这里。”我说:“非常抱歉,我在这里没有工作。”经过一些友好的讨论,我们同意她在英国呆一年。我会回到美国的IBM,如果在这一年里我在英国找到了一份工作,那么我会和她一起去英国。否则她会带着孩子们回到美国。

当我在杜布罗夫尼克时,有人提到帝国理工学院有一张椅子空着。因此,当我回到伦敦时,我说:“听着,我可能比我们想象的更接近英国的一份工作。我会看看是否可以考虑让我担任这一职位。”于是,我打电话给帝国理工学院,被告知当时的计算与控制系系主任外出度假,但他两周后就会回来。我可以打电话给他,和他谈谈。我说:“好吧,那天正好是我回纽约的日子,但我会在去机场之前给他打电话。”当我给他打过电话时,他说:“谢谢你打电话。当我外出度假时,我以为空缺已经填补,我们已经约好了。我今天回来发现我们还有空缺。”

那张椅子最初由斯坦利·吉尔博士担任。如前所述,帝国理工学院的第一次数字计算活动是由Keith Tocher博士、Sydney Michaelson(现在的教授)和Tony Brooker(现在的教授)在数学系的老Huxley大楼工作。1953年,我加入他们,攻读博士学位,研究新电子模型ICCE 2的设计。1957年,这项工作以不光彩的结局告终,当时担任数学系主任的琼斯教授表示,数学家不应该沾沾自喜,于是关闭了该项目。幸运的是,当时我已经完成了博士学位。直到1962年或1963年,帝国理工学院才开始从事计算机方面的工作。那一年,IBM向学院提交了一份709,条件是他们开设一个计算与自动化中心。这家公司在斯坦·吉尔博士的领导下开业,他在那里工作了两三年,然后辞职进入咨询公司。

随后,控制工程师约翰·韦斯科特教授接替了他的位置。他将控制工程活动从电气工程转移到计算与自动化中心,并将其更名为计算与控制部。然而,从1967年到1971-1972年,计算机科学活动有限,因为他们找不到任何人愿意填补吉尔教授辞职后留下的空缺。1972年,它决定任命史蒂文·戈德萨克教授填补这一空缺,当时他是物理系的一名读者,在物理中使用计算机方面有着丰富的经验。当韦斯科特度假回来时,他发现国防部已经获得了控制数据公司授予的一笔拨款,用于任命国防部的新主席。因此,他有两把椅子要坐,而不是一把。

因此,我被任命为部门主席,史蒂文·戈德萨克被任命为控制数据主席。但这并没有立即发生。那天早上,韦斯科特在电话里对我说:“回来吧,我会查清楚的。毕竟我们可能有空缺。你为什么不把简历发给我?”我接受了采访,并在适当的时候被告知他们感兴趣,但当然这必须通过大学参议院。事实上,当时帝国理工学院的任命必须得到枢密院的批准。在适当的时候,我被告知我被任命为主席。

因此,有许多因素促使我们返回英国。一是想回到以色列,至少英国已经走了一半。其次是我妻子在美国的不幸。第三,我意识到我在IBM是不受欢迎的。

1972年3月7日,星期一,我回到伦敦,加入帝国理工学院。我记得那一天,因为当时担任IBM SDD部门软件主管的Ted Climis要求我在离开之前向软件经理做一次关于我的工作的最后介绍。该演讲于1972年2月29日星期一在加利福尼亚州圣何塞举行。这是一个相当重要的演示,因为我能够证明OS/360或Father 370,正如当时所知道的那样,已经变得头重脚轻,他们将无法继续以他们一直在做的方式开发它。他们将不得不以某种方式将其拆分,否则它将“因自身重量而断裂”。没有人向我承认这一点,但几个月后,他们宣布,他们不会发布OS/370的22或23版,而是发布了两个名为VS1和VS2的新版本,这两个版本分别是大型更快的机器和370系列中较小的机器。现在,我不知道这个决定是因为我的陈述,还是仅仅因为管理层自己推断出的证据。我不再在IBM工作,但我的分析肯定是准确的。

因此,在圣何塞会议两天后,我回到了英国,并在接下来的一周开始在帝国理工学院学习。然后我成为了计算机部门的负责人。该系早在两三年前就开始了硕士课程,并开始设计本科生课程,其中60%是数学。我把它撕碎了,说:“我们又开始了,我一点都不喜欢。”按照英国人担任科长的传统,我是“老板”,所以我们重新设计了课程。韦斯科特已经决定,国防部不会与曼彻斯特的硬件人员展开竞争,因此我们将专注于软件、方法等。

这当然完全符合我的观点和兴趣。我们设计了一门本科课程,在很多方面都很有创意,这门本科课程始于1973年。韦斯科特的任命于1975年续约。这个职位实际上只有两个竞争者。一个是韦斯科特,他希望续约,另一个是我。从本质上讲,我的职位受到了损害,因为在担任科长期间,我在该科建立了一个评估系统,每年审查一次每个人的表现。我在IBM学到了这种做法,并开始尊重它。人们认为我是在试图向管理层介绍IBM的工业态度,他们对此感到不满。因此,有一两个人特别去找校长,布莱恩爵士,现在是弗劳尔斯勋爵,说:“不行,我们不想要雷曼兄弟。”虽然这是校长的特权,但事实上韦斯科特被重新任命,我继续工作。

1979年,部门主管再次被任命。这次我被任命了。在要求我接受这个职位时,弗劳尔斯说:“看,你在管理这个部门,但我建议你把控制部的人除掉,把他们送回电气工程部。如果这所学院要建立在计算机领域,我们需要一个计算机系。我们不希望这种混合经营。电气工程需要控制人员。”所以一年后,我们成为了计算机系,控制人员回到了原来的地方。

帝国软件技术;ISTAR公司

雷曼兄弟:

假设总部是在1979-1980年设计并开始攻读软件工程本科学位,我的主要反对意见之一。同样,相当创新——绝对创新。我们花了一两年时间设计这门课程,尽管实际上它直到1985年9月才开始,那时我已经不再是系主任了。现在,当我在准备那门课程的时候,我和一位同事特别得出结论,我们不可能仅仅根据理论来培养软件工程师。软件工程作为一门工程课程必须包括工业经验。但与此同时,我也意识到,在英国,没有一家公司在软件工程方法方面有足够的先进性,我会满怀信心地把我们的学生送到那里。他们唯一能学到的就是如何做一些事情。

因此,我去找校长提议学院成立一家高级软件技术公司。在系主任会议上,他曾描述过最近对麻省理工学院的一次访问,他在访问中观察到,大学所有的公司在提高学术地位方面发挥了重要作用,包括财务和技术方面。他觉得也许我们也应该考虑建立各种公司。所以我去找弗劳尔斯勋爵,对他说:“嘿,你看。有趣的是,你竟然在昨天的会议上这么说,因为我认为我们应该成立一家软件工程公司,既要利用我们自己的研究成果,也要在我们最终起步时,充当我们软件工程学生的雇主。”令我大吃一惊的是,他说:“好吧,准备一份提案。我会把它交给州长考虑。”。我把它交给他,它被批准了,然后他说,“好的,继续。设置它。”我以为他们会把它从我身上取下来,但他们没有。

在两年的时间里,我们为公司奠定了基础。作为投资者,我得到了三个主要组织。一家是国家威斯敏斯特银行,一家是普莱西,当时普莱西是一家独立的国防电子公司,第三家是一家名为P.a.International的咨询系统公司。他们成为了一家公司的投资者,该公司最终被我们称为Imperial Software Technology,简称IST,于1982年左右开业。它于1982年开始运行,我们很快就有了构建支持环境的想法。在欧洲术语中,它是一个集成的项目支持环境或IPSE。

这导致了一个名为ISTAR的系统的设计,这一点很重要,因为它是当时最先进的第一个主要支持环境——编程或项目支持环境。当ISTAR开始工作时,我们最终得到了四五个客户,包括英国电信、美国的摩托罗拉和普莱西自己。但每次销售都需要一到两年的时间,而不是两三个月。虽然技术人员很快就确信ISTAR是自切片面包以来最好的东西,但他们的管理层、高管们回应说,“多年来,你一直在告诉我们,好的软件开发所需要的只是几个首席执行官,几个大脑。现在你告诉我们要在软件上花费一百万美元或一百万英镑什么的?”这是一项非常困难的销售工作,典型的销售周期比商业计划中预测的六个月更像是三年。

销售ISTAR还有其他问题,这代表了一个全新的概念。此外,我们的第一笔交易已被英国电信公司出售。英国电信当时正在私有化,每六个月就要更换一次管理层。

这导致了方向的不断改变,我们不得不与他们一起改变。从商业角度来看,最终结果基本上是一场灾难。到那时,最初的投资者之一PA已经将其股份出售给该公司,另外两名风险投资人员也加入了该公司。投资者随后决定改变方向,并引进了一名美国人,我不想指名道姓,因为我要说的是,如果真的存在黑手党类型,那就是他。他声称在“拯救濒临灾难的公司”方面有很好的记录。但他进来时并不了解这项业务,随后的经验表明这是一个真正的问题。他不想让学术界人士左右,也不想让创始人左右,因此他的第一个行动就是解雇我。当时我是IST董事会的成员,也是公司的顾问。

作为该公司的创始人,我一直是该公司的第一任董事长,直到大约三年后,财务问题才成为主要问题,当时人们意识到,需要一位比我更有财务经验的人来掌舵。但我一直担任董事,直到本应扭转IST的那个人被招进来。他立即迫使我辞去董事会和公司的职务。然后我回到了计算机系,在这个意义上,我得到了一个办公室,但没有薪水。与此同时,IST高级管理层的其他成员也不愿意留在公司,所有人都辞职了。但在ISTAR中,IST拥有领先的技术,尽管到那时它的一些弱点已经变得明显。它应该能够恢复。但这位接手公司的人并没有做到这一点,在他与IST共事的一年里,几乎把公司逼到了清算阶段。因此,一年后,他又被解雇了。其他人进来了,扭转了公司的局面,IST仍然存在,尽管规模比最初设想的要小。它在生产一种名为X-Designer的产品方面取得了相当成功,该产品广泛用于X-Windows设计。

返回部门&学术政治学

雷曼兄弟:

无论如何,我在1988年回到了新闻部。我掩盖了1984年发生的事情。当我作为部门主管的第一个任期届满时,我曾希望获得第二个任期,因为我想完成我开始的工作。我的主要斗争是因为这个部门被视为一个纸笔和数学类型的部门。预算主要基于每个学生的人数,数学系的每个学生人数大约是工程系的一半,物理系的四分之一。

Aspray公司:

我懂了。

雷曼兄弟:

我必须让学院相信,正如我们所经营的那样,计算机科学是一门实验工程科学,我们的需求与物理系的需求相对应。当然比工程部门还多,因为我们的设备寿命比工程设备的寿命短得多。

Aspray公司:

正确的。

雷曼兄弟:

我与所有部门负责人进行了斗争,因为我们得到的钱越多,他们得到的就越少。因此,不可避免地,我招致了其他部门的敌意,因为我们寻求在规模和财务上都增长过快。大学政治在很大程度上是一个部门对另一个部门,就像大多数大学一样。第二个问题是Prolog或Logic Programming Group想要建立一所逻辑编程学院,这对我第二任期的抱负来说是致命的。我的立场是,这是一个过于狭隘的主题,不可能成为一个独立的部门。当时该小组的负责人去见校长,说:“如果雷曼再次被任命为部门负责人,我会让整个小组退出计算机行业,因为他不会同意我们的独立性。”现在校长虽然同意我的观点,但将其解释为部门内部分裂的迹象。这完全是假的;国防部从未像当时这样稳固。士气高涨。但他担心的是,在日本主要以Prolog的使用为中心的第五代计划尚未受到质疑的时候,我显然未能与一个他视为不墨守成规的群体保持一致。

校长进一步认识到,该系受到帝国理工学院黑手党(即物理、化学、电气工程和机械工程等大型系)的阻挠,因为我们的发展会对他们造成不利影响。正如校长对我说的那样,打击黑手党的唯一方法是任命一个黑手党领导这场斗争。似乎所有这些还不够,我还进一步与其他负责人对抗,因为我认为编程是一个需要专业教学的专业课题。现在已经成熟的计算科学系应该负责学院内的所有编程和计算机熟悉教学,就像数学系教授所有数学一样。其他部门不希望这样,因为这意味着他们将失去收入,因为他们觉得我们不了解他们的计算需求。因此,他们非常满意地通过给学生提供FORTRAN手册来教授计算机的使用,手册上写着“去学习FORTRAN”

所有这些问题的最终结果是我没有被重新任命。相反,新任命的人是当时的电气工程系主任。现在这位先生在两个不同的场合对我说,他坚信计算机系既没有智力上的理由,也没有学术上的理由因为计算机只是电子元件,因此,他应该是电气工程的一部分。所以当他被任命为我的主管时,我说:“不,非常感谢。我不能和这样的人一起工作。他不应该被任命。”

因此,我选择了“提前退休”,因为我没有退休的打算。我的继任者确实给了我40%的两年期特别合同,这在英国对提前退休者来说是很标准的。在那次会议结束时,他说:“对你来说没什么,我不想再让你在这个部门工作了。再见,很高兴有你。”然后,我全职调到了IST,在1988-1989年解散之前,我除了担任主席的最初职责外,还接管了公司的咨询活动。1984年,我被任命为伦敦大学计算机系名誉教授,这使我有权使用办公空间。因此,我重新加入该部门是因为我有一个职位和头衔,但既没有职责也没有薪水。因此,我可以自由地追随我的研究兴趣。

我的继任者作为部门主管的5年任期结束了,他没有再被任命。他的继任者在上任之前的第一件事就是问我是否会正式重新加入国防部。我说:“是的,我会的。我很乐意。”因此,1989年,我以40%的比例重返该系,继续我的研究,同时也做了少量的教学工作。直到大约两年前,情况还是如此。1991年,该部门的一个小组成为EEC研究项目ESF(Eureka Software Factor项目)的一部分。我成为了那个研究小组的主任。然后我又从40%的薪水涨到了100%,因为系里没有支付的是研究项目。

Aspray公司:

正确的。

雷曼兄弟:

这持续了大约一年,然后在1992年末,我的部门合同被终止。由于前任部门负责人的财务浪费,开支严重超支,赤字严重。Pro-Rector告诉现任部门负责人,只要雷曼还在,他就不会允许部门有任何新的任命,因为他在那里待得太久了。从财务角度来看,他认为我是多余的。我又一次被解雇了,但作为名誉教授,我被允许保留我的办公室。此外,我的ESF合同仍然有效,所以我的工资只有60%,直到1994年3月ESF项目结束。那么,除非我找到一个新的收入来源,否则我会有问题的。但尽管如此,这与历史无关。我的结局总是很糟糕。我不知道为什么;我一定有什么特点,因为我真的是一个友善的人;我想我一生中从未有过敌人!无论如何,事情总是会再次好转,从长远来看,每一次这样的灾难都证明是有益的。

软件过程工程

雷曼兄弟:

所以这真的把我们带到了今天。现在,让我再多说几句。我确信有些历史我已经忘记了,但也许在我们接下来的讨论中,我们会把它讲出来。正如我所提到的,我开始学习算术单元设计(我的博士学位)。从那时起,我开始设计一台完整的计算机SABRAC。从机器设计开始,我开始了系统设计,首先是SABRAC的操作环境,然后是IMP,设计整个系统。1968/9年,我在IBM的“软件过程”学习中,学习了方法论——它的整个概念,特别是软件技术。在过去的25年里,我一直在研究软件过程。有趣的是,在我自己的进化,我自己的发展中,我已经从系统内部发展到了某种最高水平,今天我的主要兴趣是,我称之为计算科学的膨胀宇宙理论。

我认为今天的计算科学是一种没有科学框架的技术,这是致命的。我认为,很多方面缺乏进步,特别是在软件技术方面,是因为我们没有一个重要的科学框架来为我们提供指导技术进步的不变性和原则。多年来,我一直有雄心壮志,试图将它们结合在一起,因为我认为科学的所有要素都在那里。他们需要团结起来。这是我感兴趣的一个方面,我没有真正积极地探索过,除了我正在写一篇论文,我计划称之为“软件技术:理论与实践”。它将这一切结合在一起,如果上帝给我力量和生命,它最终可能会成为一本书。但我不知道这是否会实现。

与此同时,我是软件过程革命的发起人和积极参与者。事实上,1983年,我在帝国软件与技术公司的第一个活动之一是构思国际软件过程研讨会。我的规划和组织第一次研讨会的同事是维克·斯坦宁。这个名字对你有什么意义吗?

Aspray公司:

不。

雷曼兄弟:

你应该了解他的一些情况。维克·斯坦宁是个有趣的人。他拥有计算科学学位,自70年代末毕业以来一直在工业界工作。1980年,他来到华盛顿一年,由国防部带来,与约翰·巴克斯顿(John Buxton)合作研究斯通曼(Stoneman)。他们共同编写了Stoneman文档,为Ada环境中的支持环境奠定了基础。斯坦宁非常非常聪明,是我认识的最聪明的人之一。非常非常聪明。我们现在也是非常亲密的朋友。我现在正在和他一起做“丰盛计划”,几分钟后我会向您提及。

1983年,我们建立了一个研讨会,我们称之为软件过程研讨会。这是ACM、IEEE、IEE,也许还有BCS赞助的第一次定期活动。这是一个非常有用的车间。从那以后,每隔一年或十八个月就有一次。今年将是第八年或第九年。出于某种原因,我在第三或第四节之后就不再去看他们了,我相信很不幸,比赛一直朝着错误的方向发展。它被几个人和过程编程的概念劫持了。在第九届ICSE上,Leon Osterell和我之间有一场著名的辩论,在那次辩论中,Leon首次公开介绍了过程编程的概念,我试图证明这并不是他声称的那样。从那时起,这两种观点就一直存在。

因此,自1982年以来,我一直对软件过程感兴趣。事实上,自1969年以来,我一直对Process感兴趣并参与其中。我最初的IBM研究和报告被称为“编程过程”,它把我带进了这整个行业。从那以后,我所做的一切都是沿着这些路线进行的,但它只是在过去的五六年里才变得流行起来。维克·斯坦宁(Vic Stenning)和我通过创建工艺车间(Process Workshop),在时尚方面发挥了重要作用。现在还有一个关于软件过程的国际会议;我想到目前为止已经有两个了。

至于我,我一直在继续思考这些问题,并取得了进展。今年早些时候,我在蒙特利尔举办了一个关于过程进化的研讨会,在那次研讨会上,我做了一次主题演讲。约翰·马西尼亚克(John Marciniac)要求我为他正在编写的《软件工程百科全书》(Encyclopedia on Software Engineering)写一篇关于软件技术进化的文章,这篇文章将由威利(Wiley)出版,这让我更加积极地重新思考进化本身。就在最近几个月里,我突然有了一个深刻的认识。就我而言,这是一个令人震惊的认识,25年来我一直对之视而不见的东西,应该在25年前就看到了。我现在真的把二十五年四十年的经验加在一起了。所有这一切都以我希望成为一个非常重要的项目而告终,尽管我现在有点绝望,因为我还没有得到资金。如果我们——你是历史学家。你的学术背景是什么?

Aspray公司:

数理逻辑学家。

雷曼兄弟:

数理逻辑学家。你认识这个部门的Dov Gabbai吗?

Aspray公司:

不,我没有。

反馈在软件开发中的作用

雷曼兄弟:

哦,好吧。你应该这么做。他也是一个逻辑学家,非常好。无论如何,每个名副其实的工程师和许多其他人都知道,如果你有一个反馈系统,比如说hi-fi放大器,其主要特性是由前向放大路径决定的。然后提供正反馈和负反馈,以使频率响应平坦,并获得所需的其他响应特性。一旦系统设计完成,如果您随后仅通过更改前进路径来尝试更改特性,则会发生以下两种情况之一。要么因为它变得不稳定而爆炸,要么因为反馈是为了保持特性稳定而设计的,所以什么也不会发生。现在,对于所有具有负反馈的系统来说,这一一般特征即稳定性是正确的。这是反馈系统的特性之一。


音频文件
MP3音频
(178_-_lehman_-_clip_1.mp3)

现在,我20多年来一直在说的是,编程过程是一个反馈系统。让我给你看看这里的图表。编程过程处理的是一个程序,它是真实世界中某些进程或事件的模型,而您正试图控制这些进程或事件。通过运行模型并读取该模型的输出,您可以在现实世界中应用该模型的输入来控制或指导该过程。因此,如果您查看程序开发过程,您将从某种环境中的应用程序概念开始。我现在不给你讲完整的故事,还有很多——这些线是虚线而非实线的原因。对吗?你发展了视图,然后你发展了某种理解,这必须引导你重组视图。从中可以开发应用程序领域和执行系统领域的理论、模型和过程。你经历了需求分析,你定义了你的程序,你进行了计算,你确定了你的计算程序和算法,你在最终完成时创建了程序,然后你做什么?您可以在原始操作环境中安装程序。

安装该程序时,环境会发生变化。安装行为改变了计算领域。换句话说,当您在其域中开发应用程序视图时,它们不能是当前的域视图,而是系统运行时的域视图。但由于你不知道你的系统有什么特点,你就不知道它会是什么样子。与经典的工程反馈循环一样,您有一个紧密闭合的循环,即开发过程的输入(应用程序的域描述)会被该过程的输出更改。因此,进化是真实世界软件的一个基本属性。这是我25年前意识到的事情——我的意思是,我在20世纪70年代初第一次以更原始的形式画出这幅特殊的画。你会在这本书中,在一些最早的论文中看到它。所以,正如我所说,我已经失明25年了。从本质上讲,软件开发是一个闭环系统,因为安装它的行为会改变事情,然后导致您检查并更改程序以纠正更改。

Aspray公司:

我懂了。

雷曼兄弟:

因此,程序70%的生命周期成本是通过维护产生的,这并不是由于程序员的短视和无能。它被构建成一个计算应用程序,一个程序。

Aspray公司:

嗯,有趣的想法。

雷曼兄弟:

这是事实,不是想法。

Aspray公司:

可以。

雷曼兄弟:

细微的差别。但这是一个非常简单的观点。我所描述的过程是一个连续的过程。事实上,随着你的观点的发展,你的理解力会增加,因此你的观念也会改变。这一步有反馈。这样,当程序在定义它的域中安装和操作时,您不仅可以获得总体反馈,而且在每个步骤中,随着理解的发展,视图也会发生变化。随着观点的改变,概念的改变,你变得更加雄心勃勃,你必须以不同的方式做事。因此,有一个内置的反馈,它会改变你正在尝试做的事情和你将要做的事情。但即使是这个图片也过于简单。上图显示了一位坐在中间的同事,负责所有这些活动。他在一个活动中学到的东西都会反馈到其他活动中。

这是一种表示法,但它并不是一种非常有用的表示法,只是为了传达这样一种想法,即一个人可以从流程中的每个活动中获得反馈,并将其传递给之前的每个其他活动。对吗?现在,但即使是这张照片也不完整,因为你从来没有和一个人一起开发过大规模的现实世界软件。你有一个完整的团队或多个合作团队。

Aspray公司:

正确的。

雷曼兄弟:

许多不同的用户,许多开发人员。所以我们意识到软件开发是一项非常复杂的业务。这是无关紧要的,涉及大量反馈。因此,软件过程将具有反馈系统的所有特性。现在,正如我们首先观察到的那样,其中一个特征是“相对于内部前进路径变化的外部不变性”。在过去的25年里,人们想出了各种创新的想法,如何提高程序员的生产力,例如通过交互编程、高级语言、面向对象编程、,形式化方法、CASE等等。所有这些,每一件事,每一种技术在构思时都被视为灵丹妙药。当人们发明高级语言时,他们想,“现在我们已经解决了程序问题。”!正确的!它们中的每一个都是一样的,形式化方法、CASE,甚至CASE。CASE一直是一个重大失败,我现在认为,原因不是因为这些概念缺乏价值,而是因为所有这些都代表着前进道路的改变。在反馈控制的系统中,前向路径的改变几乎没有外部影响。

为了真正改进编程过程,仅改进单个步骤是不够的。如果要取得真正的进展,CASE工具、新技术和新方法的引入必须伴随着对包含它的反馈机制的更改。现在回到我对贝尔实验室的观察;Indian Hill和ESS1项目。虽然他们在当地提高了生产力,但在全球范围内,生产力保持不变,因为他们正在破坏系统。这是一个典型的例子,说明了当我们将改进局限于前进道路时会发生的事情。当然,在规划方面取得了巨大进展。事实上,我们正在构建比以往任何时候都更复杂、更大的系统。这意味着技术必须先进。但是,在真正掌握软件开发过程之前,我们还需要一到两个数量级的进步。

FEAST项目

雷曼兄弟:

在上一次ICSE上,约翰·梅杰(John Major)发表了主旨演讲,他不是总理,而是摩托罗拉的高级副总裁。他提出的一点是,在未来六年中,摩托罗拉希望将其生产率和软件产品质量提高两个数量级。所以他们相信这是可能的。现在我告诉摩托罗拉和所有愿意听我讲话的人,我知道如何做到这一点。答案是停止将流程视为单个连续步骤的集合。它必须被视为一个反馈系统,在这个系统中,你不需要太多地关注前进的道路(因为我们已经有了大量尚未开发的技术),而是要确定反馈的路径,并学会控制和引导这条路径,以使其得到系统的处理。现在,我不知道这是否是一剂灵丹妙药,能否做到。我想有人给我一百万美元组建一个团队。我们至少已经为这个项目取了一个名字;这是FEAST项目,意思是“反馈、进化和软件技术”。我现在并没有向美国和美国的许多资助机构发送提案,而是初步试探了一下。我还没有去日本,也许我应该去。因为我认为这是一个重要的项目。Vic Stenning也将参与其中。有一位Wlad Turski教授,他是计算机教授,如果你想和他说话,你应该找他谈谈-

Aspray公司:

我知道他的名字。

雷曼兄弟:

托斯基是我的一个非常亲密的朋友。事实上,有一篇雷曼、斯坦宁和图斯基的论文,与论文内容的贡献顺序相反!图斯基是一个非常了不起的人,一个非常非凡的人,也是我最亲密的朋友之一,我当然建议你试着去见他。他受过天文学家的训练。20世纪60年代初,他来到曼彻斯特,在那里开发机器,并爱上了计算机。但他是我所说的欧洲中产知识分子的原型。他有非常广泛的知识和兴趣。他有丰富的工业经验和学术经验。他肯定会有很多话要说,当然也会告诉你很多关于东欧计算机的事情,这并不重要。

Aspray公司:

正确的。

雷曼兄弟:

1979年我在俄罗斯,被带到三个地方,莫斯科、基辅和新西伯利亚附近的阿卡德姆·戈罗多克,并在那里演讲。我是由一个叫Ershov的人招待的,你可能听说过他。

Aspray公司:

哦,是的。

雷曼兄弟:

当我在基辅的一个计算中心时,他们告诉我他们有一个操作系统,他们给我看了它,在他们的俄罗斯机器上运行,我很天真地问他们:“你能告诉我为什么俄罗斯操作系统用英语打印错误信息吗?”!他们设法掌握了OS/360或DOS等。他们已经纠正了很多错误——外部的错误消息都是俄语的,但内部的代码主体是英语的!无论如何,尽管如此,那只是另一个故事。所以图斯基会参与FEAST项目,维克·斯坦宁也会参与,现在我私下告诉你,我已经和SEI的拉里·德鲁菲尔(Larry Druffel)谈过了,我也和马里兰大学的维克·巴西利(Vic Basilli)谈过。所以这真的是一次顶级调查。这就是我对这项调查在取得重大进展方面的重要性的看法。我现在唯一需要的是说服资金管理部门,我不知道我的机会有多大。如果我不能成功做到这一点,那么明年4月之后,我将失业,因为我没有团队来工作,没有收入。这只是一个轻微的额外激励,但并不是真正的驱动力。我谈了很多。大约两小时二十分钟。我希望它对你有用。

Aspray公司:

几乎可以肯定。

雷曼兄弟:

现在,我们可以再聊十分钟左右,然后我们去吃午饭,然后在午饭时继续聊。

英国计算机科学的里程碑

Aspray公司:

也许,为了我的同事们,他们将不得不在一本调查书中找出英国硬件和软件领域应该探索的少数事件,你可以告诉我你认为过去四十年中最重要的事情是什么。

雷曼兄弟:

好吧,毫无疑问,你必须追溯到四十多年前。你必须回到四十四到四十五年前。毫无疑问,英国计算始于威尔克斯顺便说一句,他还活着-

Aspray公司:

我认识他。很好。

雷曼兄弟:

你了解他,莫里斯·威尔克斯。我也认识他。他当然在剑桥。事实上,我几周前和他谈过。他是剑桥大学奥利维蒂研究中心的员工。当威尔克斯去了普林斯顿大学,在冯·诺依曼(Von Neumann)的指导下在JOHNNIAC工作,回到英国、剑桥、数学实验室,在那里建立了一个计算单元,他们开始了EDSAC的工作。

Aspray公司:

EDSAC,是的。

雷曼兄弟:

所以威尔克斯和EDSAC当然是一粒种子。据我所知,我怀疑独立于此,威廉姆斯(Williams),他当然是雷达领域的先驱之一,曾就读于曼彻斯特大学,或者战后曾就读于曼切斯特大学,并于1940年代末或1950年代初成立了曼彻斯特学校。他们建造了各种版本的MADAM。剑桥大学负责后来被称为微程序设计的东西,或者甚至他们称之为微程序。从一开始,他们就在使用磁鼓,后来又使用延迟线和磁芯。曼彻斯特学校在存储管存储器方面非常努力,因此他们发明了B线和修改的概念,等等。我于1953年开始接触计算,当时我完成了我的本科生工作并开始攻读博士学位。大约两个月后,在国家物理实验室举行了第一次计算会议,他们也在那里研究机器。它叫什么?

Aspray公司:

是这样吗王牌?

雷曼兄弟:

ACE!当然。ACE后来被转让给英国电气公司,并更名为DEUCE。他们出席了1953年的曼彻斯特、剑桥和NPL会议。其中一位演讲者说——记住名字的工作太可怕了!逻辑界的名人是什么?

Aspray公司:

图灵.

雷曼兄弟:

当然,图灵,我怎么会忘记这个名字?我听到了图灵的讲话。我认为我不太理解图灵说的话,但他当然是ACE设计背后的人之一。我想他后来去了曼彻斯特,也影响了曼彻斯特机器。所以,可以肯定地回顾一下1953年所有英国人聚集在一起的那次会议。我应该有这些程序,我可能已经把它们交给了科学博物馆。

Aspray公司:

我见过他们。我知道如何抓住他们。

WG2.3集团;编程方法

雷曼兄弟:

这当然是一个重要事件。我认为帝国理工学院的ICCE工作本身就很重要,尽管我不认为它影响了任何其他地方。那份工作确实影响了我;那是我对数字计算的入门。但我认为它在其他地方没有太多的宣传。英国发挥了相当重要的作用。在硬件方面,我不确定我能找出任何其他做出重要贡献的东西,但在软件和编程语言方面,确实有几个人在编程方法的开发中发挥了非常重要的作用,特别是在工作组2.3的工作中。你听说过他们吗?

Aspray公司:

对。

雷曼兄弟:

IFIP有工作组。有WG 2.1,设计原始ALGOL的团队。该组织包括以下人员迪杰斯特拉比约纳·迪诺斯。

Aspray公司:

正确的。我知道你的意思。

雷曼兄弟:

还有来自挪威的达尔模拟语言之父-

Aspray公司:

SIMULA公司。

雷曼兄弟:

SIMULA公司。有许多英国参与者,包括托尼·霍尔布莱恩·兰德尔和瓦德·图斯基也是最初的团队之一。当他们完成ALGOL的工作时,Van Wijngarden决定需要ALGOL 2。这就是后来的ALGOL 67或ALGOL 68,这是一种通用语言。有一群人——我上面提到的所有人,还有其他人都说:“不,那太荒谬了。我们需要保持语言简单。”他们退出了2.1,这是官方语言工作组,他们在挪威的一次基金会会议上成立了2.3,他们称之为编程方法工作组。

奇怪的是,由于我在规划过程中的工作,虽然我没有参加在挪威特隆赫姆举行的基金会会议,但事实上我参加了1972年1月在哥本哈根举行的第一次第2.3工作组会议,在第一次会议上,我也被选为成员,这意味着我是第2.3工作小组的第一个非规划成员,也许是唯一一个。我不太确定。因此,从那以后,我一直是WG2.3的成员,尽管我没有参加太多会议,主要是因为目前我没有旅行预算。英国对WG2.3工作的贡献相当大,当时它对形式方法的发展、编程语言等产生了深远的影响。很明显,王位背后的权力最终是迪克斯特拉,但霍尔是这个群体中同样重要的一员,他的名字是什么,我之前提到过他的那个瑞士人——不断完善——尼克劳斯·沃思。

Aspray公司:

哦,好的,是的。

雷曼兄弟:

但两三年后,当他提出Modula语言时,他是在我之后当选的。我本以为这肯定是值得探索的东西——探讨第2.3工作组的工作,为任何系统方法论的方案编制和方案开发奠定基础。还有约翰·巴克斯(John Backus),他是最初小组的另一名成员,后来是WG2.3。这个小组在1968年非常重要的Gamisch软件工程会议上发挥了重要作用,这也是你应该看到的为整个软件工程运动奠定基础的事情。我还能挑选什么?嗯,我相信,软件工程作为一门学术学科是从这个学院开始的。

我认为我们是第一个申请软件工程学位的人。早在1981年,我担任系主任时就开始了这门课程,尽管这门课程直到1984年或1985年才开始,那时我已经提前退休了。我还能提什么?逻辑编程。整个运动——实际上有两个主要推动者。有一个来自马赛的法国人,普罗戈的阿兰·科尔梅劳尔?还有鲍勃·科瓦尔斯基(Bob Kowalski),他仍然在这个部门,一直被视为Prolog的主要主角之一。我们这个系还有约翰·达林顿(John Darlington),他在程序转换方面做了非常基础的工作,这是他后来在爱丁堡获得博士学位的基础。当然还有托尼·霍尔的作品——你和托尼·霍尔谈过了吗?

Aspray公司:

我还没有和他说话。我当然知道他的工作。

雷曼兄弟:

对。托尼·霍尔(Tony Hoare)是一位杰出的人物,一位古典主义者。他的博士学位是希腊语、拉丁语或类似的语言,甚至可能是历史。他毕业后的第一份工作是当一名程序员,一旦上钩,他就继续干下去。然而,他的观点并不像Dijkstra那样极端,Dijkstra在编程和软件开发方面的观点非常极端,认为它纯粹是一门数学科学。这是一个我不得不强烈反对的观点,因为它只与一个方面有关——这是一种涉及许多具有不同技能的人的非常复杂的过程。虽然我不同意,但我能看出他在说什么,并认识到这一点非常重要。

S型、P型和E型程序

雷曼兄弟:

我的程序分类方案首次在我的早期论文中发表,它定义了三种类型的程序,即S-、P-和E。S-型程序是指成功的标准是程序满足其规范的程序。这是一个数学概念,在我看来,Dijkstra方法的相关性仅限于s型程序。

Aspray公司:

正确的。

雷曼兄弟:

对于此类程序,一个人的义务仅限于证明程序相对于规范是正确的。它根本没有提到规范。成功创建S型程序的标准是,它在严格的数学意义上是正确的。

实现这一点所需的方法是Dijkstra工作的领域。然后你有一个中间类型的程序,我称之为P型程序。这里你正在解决一个问题,一个非常明确的问题类型,成功的标准是你的解决方案是正确的。别介意程序编码是否正确——你得到正确的解决方案了吗?如果事实上您精确地指定了问题,那么这是一个S型程序。但有时它是不精确的,当你得到你的解决方案时,你会意识到你在规范中犯了一个错误,并加以纠正。成功的标准是证明解决方案是正确的。

我称之为E-type的第三种程序,其中E代表“进化”。25年来,我一直关注E型程序的研究。E型程序解决现实世界中的问题或应用程序。在这个领域,正确性的概念没有任何意义,原因有二。首先,因为现实世界是无限的和连续的,因此你无法提出一个准确或完整的规范。这就是为什么我给你看的图表上的线是虚线。

Aspray公司:

对。

雷曼兄弟:

这就是为什么用云来描绘领域。这个领域走多远是一个判断的问题,这个判断可能在每一个时刻都会改变。随着时间的推移,事物发生了变化,云所代表的领域不断扩大,变得越来越大。正确可能没有任何意义,因为你没有任何相关的东西来证明它的正确性。其次,即使一个人能够提供一个规范来证明E型程序是正确的,这也不重要,因为用户并不关心正确性的抽象属性。用户需要的是,当程序执行时,他对执行的结果感到满意。用户满意度是成功的标准。现在,用户满意度会随着您的体验和视图的变化而变化。

当你的需求改变时,你的满意度标准也会改变。所以,满意是一种暂时的状态。这就是为什么维护的整个概念并不真正适用于软件的原因。当一个人保养自己的汽车时,划痕会被清除,磨损的轮胎会被更换。当软件得到维护时,不会有磨损的部件被替换,这些部件的更换将使其恢复到原始的美丽。一个人所做的就是改变它以满足新的条件。维护是一个不适合与软件联系使用的词。在通常称为维护的过程中,维护的是用户满意度。或者,您可以将其视为软件质量的维护。与硬件一样,软件质量也会随着时间而恶化,这并不是因为软件发生了变化,而是因为应用程序和域发生了变化。您在维护阶段实际所做的是开发程序以保持用户满意度。

当您构建E型程序时,您将构建一个无界或无限现实世界的有限模型。程序必须是有限的,因为你只有有限的时间来生成它,只有有限的内存来存储它。此外,程序及其控制的过程是离散的,因为这是我们在数字计算机中表示信息和执行指令的唯一方法。但现实世界本质上是连续的。因此,程序员的模型是真实世界的近似。它并不是真实世界的精确再现。不可能。本质上不是。为了用离散有限模型表示无限、连续的世界,必须进行假设。这些假设被嵌入到程序的设计和实现中。但现实世界总是在变化。事实上,创建或使用程序可以加快这种变化速度。因此,随着时间的推移,程序中所做和嵌入的一些假设将变得无效,而您可能不知道这一点。这些观察结果导致了一个被称为雷曼不确定性原理的原理,即“任何E型程序都不可能是正确的”,也就是说,人们无法知道你在创建程序时明确或隐含的所有假设,以及这些假设嵌入到设计中,代码和文档仍然有效,即使它们在您使用时可能是有效的。所以你不知道程序是正确的。这可能是正确的,但你不知道。人们必须承认,任何E型程序的执行结果在绝对水平上都是不可预测的。这只是不确定性的三个方面之一。无论如何,这与计算的历史并没有多大关系。我不知道我们是怎么到那里的!

Aspray公司:

好吧,为什么我们现在不放弃呢?

雷曼兄弟:

对。

Aspray公司:

谢谢您。