关键词:莫尔学院(Moore School),阿伯丁试验场(Aberdeen Proving Ground), 雷明顿兰德公司(Remington Rand Corporation), IBM院士(IBM Fellow)

这三位人物都是绝对的计算机先驱人物,催生了世界第一台通用电子计算机ENIAC的诞生。

先来说哥尔斯廷,在很多讲述冯诺依曼计算机体系结构历史的文章里,都会提到1944年夏天冯在火车站和美国弹道实验室的军方负责人哥尔斯廷的相遇。在这次相遇后,冯在哥尔斯廷的引见下来到了莫尔学院,在那里又见到了这个项目的负责人莫奇利和埃克特。哥尔斯廷的角色为”军方负责人”,但实际上他还是一位数学家,并且也完整地参与了ENIAC的研发工作。
莫奇利和埃克特是ENIAC的发明者,他们构思了这台机器,并且将构思付诸于工程,带领研发人员制造了ENIAC.

大学

哥尔斯廷于1933年毕业于芝加哥大学数学专业,1934年获得硕士学位,最终在1936年26岁时获得博士学位。
1942年,美国加入二战,29岁的哥尔斯廷参战入伍并被派往位于马里兰州的阿伯丁试验场的弹道研究实验室担任军械数学家,负责计算火炮射击表。

1937年,18岁的埃克特进入宾夕法尼亚大学的金融学院学习商业,但随后他就转到了同一所大学下的莫尔学院学习电气工程学,因为他从小就对电气有浓厚的兴趣,经常有自己的小发明。
1941年,22岁时埃克特拿到了电气工程学学士学位,并留校继续读研究生,在这一年他参与了由美国军方发起,由莫尔学院授课的组织国防训练课程,他教授电气工程的知识。

1925年, 18岁的莫奇利进入约翰霍普金斯大学学习工程学,不久后他转到了物理系,并在1932年获得物理学博士学位;1941年34岁时,被聘任为宾夕法尼亚大学电气工程学的讲师,并在两年后的1943年被晋升为电气工程学的助理教授。

莫尔学院聚首

1941年,22岁的埃克特参与了由美国军方发起,由莫尔学院授课的组织国防训练课程,他教授电气工程的知识;
1941年,34岁的来自宾夕法尼亚州乌尔辛纳斯学院的物理系主任莫奇利参加了这个课程的学习;
二人就此结识,莫奇利提出了研制高速电子计算机的设想,埃克特凭借自己电气工程学的丰富经验,极力赞成这个设想。莫奇利在这个课程结束后也被聘任为宾夕法尼亚大学电气工程学的讲师。至此,莫奇利和埃克特汇聚在了莫尔学院。

莫尔学院与美国陆军军械部有着不同寻常的关系,承担着为设立在马里兰州的阿伯丁试验基地弹道研究实验室培养人才和计算弹道的任务。
1942年,29岁的哥尔斯廷应征入伍,被派往阿伯丁试验场的弹道研究实验室担任军械数学家,负责计算火炮射击表,并且他还作为弹道研究实验室和莫尔学院的联络官。

计算一张射击表涉及到的数学运算非常大,而对应某种型号的火炮需要编制很多张的射击表,所涉及到的计算量巨大,对于传统人力无法完成。于是弹道研究实验室的联络官哥尔斯廷希望莫尔学院能够为阿拉丁试验场研制能够快速运算的机器。埃克特向哥尔斯廷引荐了莫奇利。

莫奇利起草了一份研制电子计算机的报告:“The Use of High-Speed Vacuum Tube Devices for Calculating”,得到哥尔斯廷的认可,之后埃克特又对这个报告进行了细化补充。军队舍得花巨资来支持这个项目,于是项目最终立项。

ENIAC的诞生

1943年,军械部决定采纳莫奇利和埃克特的高速计算机研制方案,决定投资40万美元建造这台电子计算机,这就是ENIAC(Electronic Numerical Integrator and Computer),作为一个保密项目,当时代号为”Project PX”.
莫尔学院组织了50名技术人员投入项目,任命埃克特为总工程师,莫奇利为顾问。
1946年2月15日,ENIAC正式被公布研发成功,它将计算一个弹道需要的传统计算的20个小时缩短到了30秒,取得了巨大的成功。

哥尔斯廷

莫奇利和埃克特

团队解散

1944年夏天哥尔斯廷和冯诺依曼相遇后,冯进入了ENIAC的研发小组担任顾问,那是的冯名气很大,ENIAC研发小组欣然欢迎。

团队解散首先是由”First Draft of a Report on the EDVAC”的署名问题引起,在https://en.wikipedia.org/wiki/First_Draft_of_a_Report_on_the_EDVAC里的描述,是说冯诺依曼在和ENIAC研发小组讨论,回到普林斯顿后经过总结,写出了这个”First Draft”, 之后把手写版的报告寄回了宾夕法尼亚,哥尔斯廷在拿到手写版的报告后,将报告打印并复制,打印版报告上的日期被署为1945年6月30日。在6月25日,哥尔斯廷将24分打印版的报告发给了和ENIAC紧密相关的个人,之后此报告在外界开始被广为传送。然而这个打印版的报告的署名只有冯诺依曼一个人。关于为何只有冯一个人的名字,有各种解释版本……

单独署名问题自然引起了莫奇利和埃克特的不满,而在1946年3月莫尔学院决定修改学院的专利政策,以便能够在任何计算机研发中获得商业利益,这自然引起了莫奇利和埃克特的强烈不满,他们决定辞职,和他们一起辞职的包括大部分当时ENIAC的研发人员。

莫尔课程

虽然莫奇利和埃克特辞职了,但他们之前和莫尔学院签署了在莫尔学院讲授计算机设计的课程,于是历史上著名的计算机课程”数字计算机的理论和技术设计(The Moore School Lectures)”从1946年7月8日开课,到1946年8月31日结课,埃克特讲了11节课,莫奇利和哥尔斯廷分别讲了6节课。参加课程学习的人员既有陆军海军的代表,也有来自麻省理工,剑桥,哥伦比亚,哈佛等大学的人,还有美国国家标准局等机构,再有就是商业机构比如IBM,贝尔实验室等。
此次课程的播种,为计算机行业的雨后春笋般的蓬勃发展打下了基础。

各自发展

1947年莫奇利和埃克特成立了实际上第一家计算机公司,Eckert-Mauchly Computer Corporation,他们的员工也大多来自INIAC项目的研发成员。他们为美国政府机构开发了更加先进的计算机,比如UNIVAC, BINAC。但由于两位计算机先驱不擅长公司经营,最后公司面临财务问题。但以他们在计算机界的顶顶大名,很多公司愿意收购他们,最终被雷明顿兰德公司收购。

之后莫奇利又自己创建了公司并经营;而埃克特则一直留在兰德公司工作,并做到了很高的职位。

哥尔斯廷则是在IBM工作,于1969年被授予IBM院士头衔。他还写了三本关于计算机历史的书,其中在”The Computer from Pascal to von Neumann”中, 哥尔斯廷对冯诺依曼在现代计算机历史上的关键作用的提出了质疑。

莫奇利于1980年1月8日去世,享年73岁。
埃克特于1995年6月3日死于白血病,享年76岁。
哥尔斯廷则2004年6月16日去世,在去世前曾长期挣扎在帕金森病的折磨,享年91岁。

附录(不完整,待完善)

早期计算机

哥尔斯廷(Herman Heine Goldstine)生平

  • 1913年9月13日出生于美国芝加哥,犹太人;
  • 1933年毕业于芝加哥大学数学专业,1934年获得硕士学位,1936年获得博士学位;
  • 1936-1939的三年内,担任美国数学家吉尔伯特的研究助理;
  • 1939年开始了在密歇根大学的教学生涯;
  • 1941年和 Adele Katz结婚, Adele Katz是ENIAC的程序员;
  • 1942年,美国加入二战,他参战入伍并被派往位于马里兰州的阿伯丁试验场的弹道研究实验室担任军械数学家,负责计算火炮射击表。火炮射击表是根据火炮自身
  • 2004年6月16日去世,在去世前曾长期挣扎在帕金森病的折磨下。

莫奇利(John William Mauchly)生平

  • 1907年8月30日生于美国俄亥俄州的辛辛那提
  • 1925年, 进入约翰霍普金斯大学学习工程学,不久后他转到了物理系,并在1932年获得物理学博士学位
  • 1932年-1933年, 在约翰霍普金斯大学担任研究助理
  • 1933年, 26岁时开始了在位于宾夕法尼亚州的乌尔辛纳斯学院的教学生涯,被任命为物理系主任
  • 1941年, 34岁时,被聘任为宾夕法尼亚大学电气工程学的讲师,并在两年后的1943年被晋升为电气工程学的助理教授
  • 1946年,39岁时,离开莫尔学院
  • 1948年,41岁时和第二任妻子Kathleen Kay McNulty (1921-2006)结婚,Kathleen是最初的ENIAC程序员六人组的一员
  • 从1973年直到1980年去世,他一直担任Sperry UNIVAC的顾问
  • 1980年1月8日去世,享年73岁。

埃克特(J. Presper Eckert)生平

  • 1919年4月9日生于美国费城,小时候就对电气方面有浓厚的兴趣,并且有自己的小发明
  • 1937年,进入宾夕法尼亚大学的金融学院学习商业,但随后他就转到了同一所大学下的莫尔学院学习电器工程学
  • 1941年,22岁时拿到了电气工程学学士学位,并留校。
  • 在这一年他参与了由美国军方发起,由莫尔学院授课的组织国防训练课程,他教授电气工程的知识
  • 1946年3月,27岁时离开莫尔学院

参考:
https://en.wikipedia.org/wiki/Herman_Goldstine
https://en.wikipedia.org/wiki/John_Mauchly
https://en.wikipedia.org/wiki/J._Presper_Eckert
https://en.wikipedia.org/wiki/First_Draft_of_a_Report_on_the_EDVAC

计算机人物系列-Mauchly,Eckert,Goldstine的更多相关文章

  1. Index-技术学习系列博客

    计算机理论基础系列 B树的插入操作 前端系列 安装nodejs和webpack环境 构建vue项目 Json Web Token VO和DO转换(一) 工具汇总 缓存的实现和使用 框架学习系列 shi ...

  2. 计算机&编程语言发展史

    计算机&编程语言发展史 编辑于2020-11-18 计算机的基本组成 计算机的发展经历了哪几代? 第一代 电子管计算机 第二代 晶体管计算机 第三代 集成电路计算机 第四代 大规模和超大规模集 ...

  3. 学习之路~sqh

    推荐博客 Edison Chou: Vamei: 算法∙面试专题 - 简书: 设计模式 极速理解设计模式系列[目录索引]- Caleung: Net设计模式 - 灵动生活: 宅男程序员给老婆的计算机课 ...

  4. EnglishLeaning

    今天看了些hadoop官方reference感觉自己词汇量和语法真是又回到解放前了.于是,痛下决心要好好学习英语.找到了一些学习的方法,自己记录下来,也和大家一起借鉴 努力目标: 掌握大量的计算机英语 ...

  5. IT书籍的选择与阅读

    拍摄是一件艰苦而有趣的事情. 它需要眼睛和心灵完全融合投入, 需要耐心等待排除干扰, 需要敏捷捕捉稍纵即逝的瞬间. 但是, 非艰苦不成乐趣. 人生也应该选择一件有难度的事情来做. 做不成, 可以收获过 ...

  6. 李洪强iOS开发之零基础学习iOS开发】【02-C语言】01-概述

    前面已经给大家介绍了iOS开发相关的一些基础知识,其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言.iOS开发需要学习的主要程序设计语言有:C语言.C+ ...

  7. HTTP协议简介详解 HTTP协议发展 原理 请求方法 响应状态码 请求头 请求首部 java模拟浏览器客户端服务端

    协议简介 协议,自然语言里面就是契约,也是双方或者多方经过协商达成的一致意见; 契约也即类似于合同,自然有甲方123...,乙方123...,哪些能做,哪些不能做; 通信协议,也即是双方通过网络通信必 ...

  8. 移动端目标识别(2)——使用TENSORFLOW LITE将TENSORFLOW模型部署到移动端(SSD)之TF Lite Developer Guide

    TF Lite开发人员指南 目录: 1 选择一个模型 使用一个预训练模型 使用自己的数据集重新训练inception-V3,MovileNet 训练自己的模型 2 转换模型格式 转换tf.GraphD ...

  9. 借鉴 学习 DELPHI 通用函数 哈哈

    [转]关于Delphi通用涵数 http://m.blog.csdn.net/blog/dragonjiang5460/1196927 2006-9-8阅读2016 评论0 DELPHI程序注册码设计 ...

随机推荐

  1. Python编码记录

    字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...

  2. IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题

    你是否遇到过当使用一个涉及到Cookie操作的网站或者管理系统时,IE 6.7.8.9下都跑的好好的,唯独到了IE10.11这些高版本浏览器就不行了?好吧,这个问题码农连续2天内遇到了2次.那么,我们 ...

  3. JS判断鼠标进入容器方向的方法和分析window.open新窗口被拦截的问题

    1.鼠标进入容器方向的判定 判断鼠标从哪个方向进入元素容器是一个经常碰到的问题,如何来判断呢?首先想到的是:获取鼠标的位置,然后经过一大堆的if..else逻辑来确定.这样的做法比较繁琐,下面介绍两种 ...

  4. [C#] C# 知识回顾 - 学会使用异常

    学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...

  5. psoc学习

    第一是:项目的路径需要放在Documents and Settings\,也就是默认的文件夹的地方,不然会报错错误范例为:Question:CY8CKIT-023 kit example projec ...

  6. javascript 笔记!

    1.通过javascript向文档中输出文本 document是javascript的内置对象,代表浏览器的文档部分 document.write("Hello Javascript&quo ...

  7. DockerCon 2016 – 微软带来了什么?

    根据Forrester的调查,接近半数的企业CIO在考虑IT架构的时候更乐于接受开源方案,这主要是基于低成本,避免供应商锁定和敏捷的需求:同时另外一家North Bridge的调研机构的调查显示,20 ...

  8. 如何区别数据库删除语句drop与delete与truncate?

    1.delete:删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行) 删除某一行:delete from 数据表名称 where 列名称=值: 删除所有行:delete*fro ...

  9. [转]thinkphp 模板显示display和assign的用法

    thinkphp 模板显示display和assign的用法 $this->assign('name',$value); //在 Action 类里面使用 assign 方法对模板变量赋值,无论 ...

  10. D3.js学习(六)

    上节我们学习了如何绘制多条曲线, 以及给不同的曲线指定不同的坐标系.在这节当中,我们会对坐标轴标签相关的处理进行学习.首先,我们来想一个问题, 如何我们的x轴上的各个标签的距离比较近,但是标签名又比较 ...