跳至正文

计算机编程中最伟大的发明

计算机编程中最伟大的发明

在我与高级编辑的一次谈话中,有人问我“第一批程序员是如何编程的?” 这引发了一场关于 Babbage 和 Ada Lovelace 的讨论,最后,我被指派去研究这一切是如何开始的——这是计算史上的许多第一。

我浏览了书籍和网站,并得到了很多启示:从技术上讲,Babbage 并不是计算机的发明者,FORTRAN 绝对不是第一种高级编程语言,我们曾经有用于 CRT 屏幕的手写笔(真的)。

我还惊讶地发现,战争在推动计算机发展的快速进步方面是多么重要,而且我们的教科书选择忽略许多女性的贡献。因此,为了填补计算机和程序历史上的空白,我汇总了计算领域的 20 个第一,从保龄球到第二次世界大战以及其间的一切。

1. 第一台计算机:“差分机”(1821 年)

“差分机”是一种被提议用于输出数学表的机械计算机。

受英国政府委托,查尔斯·巴贝奇(又名计算机之父)开始研究它,但由于其高昂的生产成本,资金停止,机器从未完成

差动发动机

图片来源:维基媒体

2. 第一台通用计算机:“分析引擎”(1834 年)

“分析引擎”也是一个被提议的机械计算机,它的输入应该是打孔卡片,上面打有程序和数据。查尔斯巴贝奇的另一个创意,这台机器也没有完成。

分析引擎

图片来源:wikieducator.org

3. 第一个计算机程序:计算伯努利数的算法(1841 – 1842)

Ada Lovelace(世界上第一位计算机程序员)于 1841 年开始翻译意大利数学家 Luigi Menabrea 关于巴贝奇分析引擎的记录。

在翻译过程中,她对机器产生了兴趣,并在翻译时留下了笔记。其中一个笔记——笔记 G,包含了通过分析引擎计算伯努利数的算法,被认为是第一个计算机程序。

第一个计算机程序

图片来源:维基媒体

4. 第一台可用的可编程计算机:Z3 (1941)

Konrad Zuse(计算机的发明者)已经有了一台可以工作的机械计算机 Z1,但它一次只能工作几分钟。

使用不同的技术——继电器,导致了 Z2 和最终的 Z3。Z3 是一台电磁计算机,其程序和数据存储在外部穿孔带上。这是德国政府的秘密项目,由德国飞机研究所投入使用。

最初的机器在 1943 年的柏林轰炸中被摧毁。

楚思Z3电脑

5. 第一台电子计算机:Atanasoff-Berry Computer (ABC) (1942)

由 John Vincent Atanasoff 和 Clifford Berry 创建,因此命名为 Atanasoff-Berry Computer 或 ABC 用于寻找联立线性方程的解。

这是第一台使用二进制表示数据和电子开关而不是机械开关的计算机。然而,计算机不是可编程的。

图片来源:伽利略

6. 第一台可编程电子计算机:Colossus (1943)

由 Tommy Flowers 创建的 Colossus 是一台机器,旨在帮助英国人解密在第二次世界大战期间使用洛伦兹密码加密的德国信息。

它由电子开关和插头编程。Colossus 将破译加密信息的时间从数周缩短至数小时。

图片来源:维基媒体

7. 第一台通用可编程电子计算机:ENIAC (1946)

ENIAC 或电子数字积分器和计算机由美国陆军资助,由 John Mauchly 和 J. Presper Eckert 在宾夕法尼亚大学摩尔电气工程学院开发。

ENIAC 有 150 英尺宽,可以通过编程执行复杂的操作,例如循环;编程是通过改变其电子开关和电缆来完成的。它使用读卡器进行输入,使用打卡器进行输出。

它帮助计算了世界上第一颗氢弹的可行性。

图片来源:hnf.de

8. 第一个轨迹球:(1946/1952)

为什么第一个轨迹球需要两年时间?请允许我解释一下。

第一年是一位拉尔夫·本杰明给出的年份,他在1946年从事低空飞行监控系统时声称创造了世界上第一个轨迹球。他描述的发明是用一个球来控制XY坐标屏幕上的光标。

该设计于 1947 年获得专利,但由于被视为“军事机密”而从未公开。军方选择了操纵杆。

世界上第一个轨迹球的第二个竞争者,于 1952 年用于加拿大海军的 DATAR 系统,由汤姆·克兰斯顿 (Tom Cranston) 和他的同事发明。这个轨迹球设计有一个模型,它使用了一个在“空气轴承”上旋转的加拿大保龄球(见下图)。

图片来源:engadget

9. 第一台存储程序计算机:SSEM (1948)

为了克服延迟线存储器的缺点,Frederic C. Williams 和 Tom Kilburn 开发了第一个基于标准 CRT 的随机存取数字存储设备。

SSEM(曼彻斯特小型实验机)用于实现该存储设备以供实际使用。使用 32 个开关以二进制形式输入程序,其输出是 CRT。

图片来源:斯塔福德郡大学计算

10. 第一种高级编程语言:Plankalkül (1948)

尽管 Konrad Zuse 从 1943 年就开始研究 Plankalkül,但直到 1948 年他才发表了一篇关于它的论文。不幸的是,它并没有引起太多关注。将近 30 年后,编译器才为它实现,一个由 Joachim Hohmann 在论文中创建的编译器。

11. 第一个组装者:EDSAC 的“初始订单”(1949 年)

汇编程序是一种将助记符(低级)转换为数字表示(机器代码)的程序。EDSAC(电子延迟存储自动计算器)中的初始订单是此类系统的第一个。

它用于将程序从纸带输入组装到内存中并运行输入。这些程序是助记符代码而不是机器代码,通过将符号低级程序代码处理成机器代码,使“初始代码”成为有史以来第一个汇编程序。

图片来源:剑桥大学计算机实验室

12. 第一台个人电脑:“Simon”(1950)

埃德蒙·伯克利 (Edmund Berkeley) 的“西蒙”是第一台经济实惠的数字计算机,它可以执行四种运算:加法、求反法、大于法和选择法。输入是穿孔纸,程序在纸带上运行。唯一的输出是通过五盏灯。

13. 第一个编译器:A-0 for UNIVAC 1 (1952)

编译器是将高级语言转换为机器代码的程序。A-0 系统是由传奇人物 Grace Hopper 创建的一个程序,用于将指定为一系列子例程和参数的程序转换为机器代码。

A-0 后来演变为 A-2,并连同其源代码一起发布给客户,这使其可能成为第一个开源软件

图片来源:维基媒体

14. 第一次自动编码:Glennie 的自动编码 (1952)

Autocode 是一种使用编译器的高级编程语言。第一个自动编码及其编译器出现在曼彻斯特大学,使 Mark 1 机器的编程更容易理解。

它由 Alick Glennie 创建,因此得名 Glennie’s Autocode。

图片来源:维基百科

15. 第一台实时图形显示计算机:IBM 的 AN/FSQ-7 (1951)

AN/FSQ-7 基于第一台显示实时输出的计算机 Whirlwind。它成为被称为半自动地面环境 (SAGE) 的美国防空系统的生命线。

计算机会显示目标的踪迹,并自动显示射程内有哪些防御工事。AN/FSQ-7 有 100 个系统控制台;这是一个(下图),OA-1008 态势显示器 (SD),带有用于在屏幕上选择目标以获取更多信息的光枪。

图片来源:维基百科

16. 第一个广泛使用的高级编程语言:FORTRAN (1957)

如果你查阅教科书,你会发现 FORTRAN 被列为第一种高级编程语言。

由不喜欢编写程序的 John W. Backus 想到并决定创建一个编程系统来帮助简化过程,FORTRAN 的使用大大减少了让机器运行所需的编程语句的数量。

到 1963 年,已有 40 多个 FORTRAN 编译器可用。

图片来源:维基百科

17. 第一只老鼠 (1964)

1964 年,道格拉斯·恩格尔巴特 (Douglas Engelbart) 在参加计算机图形学会议时萌生了鼠标的想法。

他想出了一个带有一对小轮子(一个水平转动另一个垂直转动)的装置,可以用来在屏幕上移动光标。原型(见下文)由他的首席工程师 Bill Engelbart 创建,但 Engelbart 和 Engelbart 从未收到过该设计的版税,因为从技术上讲,它属于 Engelbert 的雇主 SRI。

图片来源:Michael Hicks

18. 第一台商用台式电脑:Programma 101 (1965)

Programma 101 也称为 Perottina,是世界上第一台商用 PC。它可以执行加法、减法、乘法、除法、平方根、绝对值和分数。

尽管它能做到这一点,但它的定价为 3,200 美元(那是一个非常不同的时间)并成功售出 44,000 台。Perottina 由 Pier Giorgio Perotto 发明,由意大利制造商 Olivetti 生产。

图片来源:TEDxArezzo

19. 第一个触摸屏 (1965)

它看起来并不多,但这是世界上第一个触摸屏。它是一个电容式触摸屏面板,没有压力敏感性(有接触或没有接触)并且它只记录单点接触(与多点触控相反)。

直到 1990 年代,这个概念才被英国的空中交通管制员采用。

图片来源:arstechnica

20. 第一种面向对象编程语言:Simula (1967)

基于 CAR Hoare 的类构造概念,Ole-Johan Dahl 和 Kristen Nygaard 用对象、类和子类更新了他们的“SIMULA I”编程语言。这导致了 SIMULA 67 的创建,它成为第一个面向对象的编程语言。

图片来源:维基百科

最后的想法

尽管这篇文章是关于我们可以从计算历史上的许多第一中学到什么,但我们很难沉浸在历史本身中。结果,至少对我而言,我们变得更加欣赏前几代人所做的工作,并且我们可以更好地理解是什么推动了塑造我们今天生活的世界的许多变化。

我希望这篇文章能像启发我一样启发你。分享您对这些第一的想法,如果我错过了任何一个,我确信我错过了,请在评论中添加它们。

立即阅读:
40 位改变了互联网的人

标签: