ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

格蕾丝·霍珀:她让计算机开始“听懂人话”,也让编程走向大众

2026/8/14 23:52:56 拓冰建站 浏览量
格蕾丝·霍珀:她让计算机开始“听懂人话”,也让编程走向大众 名人说长风破浪会有时直挂云帆济沧海。——李白《行路难》创作者Code_流苏(CSDN)一个喜欢古诗词和编程的Coder目录一、传奇起点从数学博士到海军程序员1. 从小就喜欢“拆东西”的女孩2. 第二次世界大战改变了她的人生二、走进计算机在 Mark I 上写程序1. 一个“程序员”尚未成为职业的年代2. 一只飞蛾与“Debug”的经典故事三、真正的革命为什么不能让计算机理解人1. 当所有人都认为“机器只认识机器码”2. A-0早期编译器的重要突破四、FLOW-MATIC第一次真正让程序接近“人话”1. 编程为什么一定要写数学符号2. 从机器语言到英语式编程五、COBOL让编程真正进入商业世界1. 一门影响半个多世纪的语言2. COBOL 到底有多像英语六、她真正改变的不只是一门编程语言1. 人不应该被机器绑架2. 编程应该让更多人使用七、迟来的荣耀她的名字留在了计算机历史里八、今天再看霍珀从编译器到AI我们仍走在她开辟的路上今天我们使用 Python、Java、C 编程时早已习惯写下人类可以理解的代码然后交给编译器或解释器处理。但如果把时间拨回到计算机刚刚诞生的年代事情完全不是这样。那时的程序员往往需要直接面对机器指令、数字代码和复杂的硬件结构。在很多人眼中想使用计算机就应该先学会计算机的语言。但有一个人提出了完全相反的思路为什么一定要让人去适应机器为什么不能让机器去理解人写的语言这个看似理所当然的想法在20世纪50年代却极其大胆。而提出并真正推动它走向现实的人就是本文的主人公——格蕾丝·霍珀Grace Murray Hopper。她是数学家、计算机科学先驱、美国海军少将也是早期编译器技术的重要开拓者。她参与了 Harvard Mark I 的编程工作主持开发了 A-0、FLOW-MATIC 等早期编程系统并对后来 COBOL 语言的形成产生了重要影响。美国白宫后来称她为“Amazing Grace”和计算机软件领域的重要先驱。图片Grace Hopper 格蕾丝·霍珀一、传奇起点从数学博士到海军程序员1. 从小就喜欢“拆东西”的女孩1906年12月9日格蕾丝·布鲁斯特·默里出生于美国纽约。她从小就有非常强烈的好奇心。相比于单纯接受一个东西“能用”她更喜欢研究它为什么能工作里面到底是什么这种对结构和原理的兴趣后来也贯穿了她整个计算机生涯。1928年霍珀从瓦萨学院Vassar College毕业学习数学和物理1930年获得耶鲁大学数学硕士学位1934年又获得数学博士学位之后回到瓦萨学院教授数学。在那个年代一名女性能够获得数学博士学位本身就已经十分罕见。但霍珀的人生很快迎来了另一个转折点。2. 第二次世界大战改变了她的人生第二次世界大战期间霍珀决定加入美国海军预备役。1944年她被派往哈佛大学的Bureau of Ships Computation Project并进入霍华德·艾肯Howard Aiken领导的计算团队。摆在她面前的是当时最先进的计算设备之一Harvard Mark I。这台机器与我们今天桌面上的电脑完全不同。它由大量机械和电磁部件组成体积庞大编程方式也远没有今天这么友好。霍珀成为 Mark I 最早的一批程序员之一由此正式进入一个当时甚至还没有成熟名字的新领域——计算机编程。图片Grace Hopper 与 Harvard Mark I二、走进计算机在 Mark I 上写程序1. 一个“程序员”尚未成为职业的年代如今我们谈到程序员会想到 IDE、Git、框架、数据库以及各种高级编程语言。但在霍珀工作的时代几乎什么都没有。没有 Visual Studio Code。没有 GitHub。没有 Stack Overflow。更没有 Python、Java、C。程序员必须非常了解机器本身并将复杂的问题一步步转换成机器能够执行的指令。这使编程拥有极高的门槛。而霍珀逐渐意识到真正限制计算机普及的可能不仅仅是硬件性能还有人与计算机之间沟通的方式。这个问题最终促使她走向了自己最重要的研究方向——编译器。2. 一只飞蛾与“Debug”的经典故事霍珀还有一个几乎所有程序员都听过的故事。1947年Harvard Mark II 计算机出现异常。工作人员检查机器后发现一只飞蛾卡在继电器中。于是他们把这只飞蛾取出来直接用胶带粘在了运行日志上并在旁边写下了大意为“第一次发现真正的 Bug。”这张保存着飞蛾的日志后来成为计算机历史上的著名文物如今由美国国家历史博物馆保存。图片Mark II 日志中真正的“Bug”不过这里有一个经常被误传的细节。Bug 并不是霍珀创造的词Debugging 也不是因为这只飞蛾才第一次出现。在此之前“bug”就已经被工程师用于描述机器或系统中的故障。真正有趣的是这一次机器里面真的出现了一只“虫子”。所以这件事成为计算机历史上最著名的程序员轶事之一。从此以后“找 Bug”“Debug”也成为了无数程序员每天都要面对的日常。三、真正的革命为什么不能让计算机理解人如果说 Mark I 让霍珀进入了计算机世界那么编译器则真正让她在计算机发展史上留下了自己的名字。1. 当所有人都认为“机器只认识机器码”早期计算机编程非常接近机器本身。程序员需要告诉计算机在哪里读取数据执行什么指令结果放在哪里下一步跳到什么位置霍珀却开始思考一个看起来有些“异想天开”的问题计算机为什么不能自动完成这些翻译工作程序员只负责描述自己想做什么。至于怎样转换成机器可以执行的指令交给另一个程序完成。例如程序员编写的高级语言 ↓ 编译器 ↓ 机器能够执行的指令 ↓ CPU今天看来这几乎是编程领域最基础的工作流程。但在当时很多人并不相信这种方式能够实现。2. A-0早期编译器的重要突破1949年霍珀加入 Eckert-Mauchly Computer Corporation开始参与 UNIVAC 计算机相关工作。随后她设计并推动开发了A-0 System。A-0 通常被视为计算机历史上最早的编译器系统之一也是高级语言走向现实的重要里程碑。计算机历史博物馆的资料将其描述为 Hopper 的早期编译器工作并指出后来的 A-0、A-2 等系统进一步推动了编译式编程的发展。它背后的思想非常重要程序员不应该每一次都重新编写底层机器指令。那些已经写好并验证过的程序可以通过名字调用再由系统自动找到对应代码并组合起来。从今天的角度来看这种思想已经深入现代软件开发print(Hello World)我们不需要知道print()最终对应多少条机器指令。也不需要自己控制 CPU 如何打印字符。因为这些复杂工作已经被一层又一层的软件抽象替我们完成。而霍珀所推动的正是这种改变让程序员逐渐远离机器细节把注意力放回“解决问题”本身。四、FLOW-MATIC第一次真正让程序接近“人话”1. 编程为什么一定要写数学符号有了编译器之后霍珀并没有停止。她又提出了一个更加大胆的想法既然计算机能够翻译程序那为什么不能直接使用接近英语的语句编程这一次她面对的质疑更大。很多程序员认为计算机是数学机器。程序就应该使用数学符号和机器语言。让计算机处理英语没有必要。甚至是不可能的。但霍珀坚持了下来。她带领团队开发出了FLOW-MATIC。FLOW-MATIC 是早期使用接近英语语句进行商业数据处理的编程语言之一并成为后来 COBOL 形成过程中最重要的技术来源之一。图片FLOW-MATIC 编程资料2. 从机器语言到英语式编程FLOW-MATIC 最大的突破并不是某一个具体语法。而是改变了人们对于“编程语言”的理解。过去是人 → 学习机器语言 → 控制计算机霍珀希望变成人 → 使用更自然的语言描述任务 ↓ 编译器 ↓ 计算机执行这里真正改变的是人与机器之间的主动权。以前是人类努力学习机器。后来越来越多的软件开始帮助机器理解人类。这条路从汇编语言、高级语言、编译器一路发展最终形成了今天庞大的软件生态。五、COBOL让编程真正进入商业世界1. 一门影响半个多世纪的语言1959年美国政府和计算机行业组织专家讨论建立一种通用的商业编程语言。这个项目最终诞生了COBOLCommon Business-Oriented Language通用商业导向语言。霍珀并不是 COBOL 的“唯一发明者”。这一点需要特别说明。COBOL 是一个委员会协作产生的语言霍珀担任相关工作的技术顾问她此前推动的 FLOW-MATIC 以及“使用接近英语的方式编程”的理念对 COBOL 的形成产生了重要影响。因此与其简单把她称作“COBOL唯一创造者”更准确的说法是她是 COBOL 最重要的先驱和推动者之一。2. COBOL 到底有多像英语我们来看一个简单的 COBOL 程序IDENTIFICATIONDIVISION.PROGRAM-ID.HELLO.PROCEDUREDIVISION.DISPLAYHello, World!.STOPRUN.即使完全没有学过 COBOL大概也能猜到它要做什么。这就是霍珀一直推动的方向代码应该更加接近人的表达方式而不是让所有人都去适应机器。今天我们使用 Pythonprint(Hello, World!)使用 JavaScriptconsole.log(Hello, World!);程序语言越来越强调可读性、抽象、封装和开发效率。从某种角度来看这正是霍珀当年坚持的方向不断向前延伸的结果。六、她真正改变的不只是一门编程语言如果只把格蕾丝·霍珀理解成“COBOL先驱”其实远远低估了她。她真正推动的是一种新的计算机哲学1. 人不应该被机器绑架早期程序员需要理解大量机器细节。霍珀却不断推动计算机软件提高抽象层次。机器码01001000 01100101 01101100 01101100 01101111汇编语言MOV AX, BX高级语言printf(Hello World);Pythonprint(Hello World)再到今天我们甚至可以直接告诉 AI帮我写一个读取 Excel 文件 统计每个月销售额 然后生成柱状图的 Python 程序。从机器语言到高级语言再从高级语言到自然语言驱动的软件开发人类一直在做同一件事情不断缩短“人的想法”与“机器执行”之间的距离。而霍珀是这条道路上最早、也最坚定的推动者之一。2. 编程应该让更多人使用编译器真正伟大的地方并不仅仅是节省了几行代码。它改变了软件开发的参与门槛。因为如果世界上所有程序员都必须直接操作机器码那么计算机永远只能属于极少数专家。只有当工具越来越简单、语言越来越高级、抽象越来越完善越来越多的人才能开始编程。从这个角度来看霍珀推动的不只是编译器的发展也是计算机从少数专家工具走向大众的重要一步。七、迟来的荣耀她的名字留在了计算机历史里1992年1月1日格蕾丝·霍珀去世享年85岁。她被以完整军事荣誉安葬于阿灵顿国家公墓。但她的名字并没有随着时代远去。2016年美国总统奥巴马追授霍珀总统自由勋章Presidential Medal of Freedom这是美国最高等级的平民荣誉之一。白宫在介绍她时再次强调了她在编译器以及让编程语言更加实用、易用方面的重要贡献。奥巴马政府在纪念计算机科学先驱时还曾用一句非常简洁的话概括她的历史地位如果莱特兄弟代表飞行爱迪生代表电灯那么霍珀代表代码。从 Harvard Mark I到编译器从 FLOW-MATIC到 COBOL从数学博士到海军少将她的一生横跨了现代计算机最重要的早期发展阶段。图片Grace Hopper 晚年八、今天再看霍珀从编译器到AI我们仍走在她开辟的路上今天再看 Grace Hopper她最重要的意义不只是开发了什么程序而是推动了一个至今仍不过时的理念让技术更简单让计算机更懂人。从机器指令到高级语言从编译器到今天的 AI计算机一直在降低人与机器交流的门槛。几十年前霍珀推动计算机理解更接近人类的编程语言几十年后我们开始尝试让计算机直接理解自然语言。技术在变但问题没有变如何让人与机器之间的距离更近一点她没有独自创造 COBOL却坚定推动了编译器、高级语言和机器无关编程的发展。她所坚持的目标很简单让计算机适应人而不是永远让人适应计算机。格蕾丝·霍珀让编程一步步从机器的世界走向了人的世界。专栏✅《计算机名人堂》欢迎订阅催更谢谢大家支持创作者Code_流苏(CSDN)