历史上的今天
返回首页

历史上的今天

今天是:2025年08月09日(星期六)

2019年08月09日 | 你知道第一个编译器发明者是一位女大牛吗?

2019-08-09 来源:维基百科

在今日东莞松山湖举行的“华为开发者大会”上,华为消费者业务软件总裁王成录说,方舟编辑器构建的存在,让华为系统有了领先所有厂家的可能。方舟编译器应用流畅度最高提升60%。当日,华为终端CEO余承东也表示,目前已有几十款主流应用,都通过了方舟编译器编译了,也就是说鸿蒙操作系统随时都有可能用在手机上。


编译器这么重要,那么你知道第一个编译器的发明者是为女性吗?


早期的计算机软件都是用汇编语言直接编写的,这种状况持续了数年。当人们发现为不同类型的中央处理器(CPU)编写可重用软件的开销要明显高于编写编译器时,人们发明了高级编程语言。由于早期的计算机的内存很少,当大家实现编译器时,遇到了许多技术难题。

大约在20世纪50年代末期,与机器无关的编程语言被首次提出。随后,人们开发了几种实验性质的编译器。第一个编译器是由美国女性计算机科学家葛丽丝·霍普(Grace Murray Hopper)于1952年为A-0 系统编写的。但是1957年由任职于IBM的美国计算机科学家约翰·巴科斯(John Warner Backus)领导的FORTRAN则是第一个被实现出具备完整功能的编译器。1960年,COBOL成为一种较早的能在多种架构下被编译的语言。

高级语言在许多领域流行起来。由于新的编程语言支持的功能越来越多,计算机的架构越来越复杂,这使得编译器也越来越复杂。

早期的编译器是用汇编语言编写的。首个能编译自己源程序的编译器是在1962年由麻省理工学院的Hart和Levin制作的。从20世纪70年代起,实现能编译自己源程序的编译器变得越来越可行,不过还是用Pascal和C语言来实现编译器更加流行。制作某种语言的第一个能编译器,要么需要用其它语言来编写,要么就像Hart和Levin制作Lisp编译器那样,用解释器来运行编译器。


葛丽丝·霍普轶事


格蕾丝·穆雷·赫柏(英语:Grace Murray Hopper,1906年12月9日-1992年1月1日),本名葛丽丝·布鲁斯特·穆雷(英语:Grace Brewster Murray),霍普(Hopper)为夫姓,生于美国纽约州纽约市,美国海军准将(Rear admiral)及计算机科学家,世界最早一批的程序员之一,也是最早的女性程序员之一。她是Harvard Mark I上第一个专职程序员,创造了现代第一个编译器A-0 系统,以及第一个高级商用计算机程序语言“COBOL”,被誉为“COBOL 之母”。著名的计算机术语“Debug”(调试排错)便是她在受到从计算机中驱除蛾子的启发而开始使用的,于是她也被冠以“Debug 之母”的称号。她也是Y2K危机的创造者。她培育出许多编程语言专家,被人称为“不可思议的葛丽丝”(Amazing Grace,双关语)。

她是美军第一个获得准将头衔的女性,美国海军驱逐舰霍珀号驱逐舰(USS Hopper (DDG-70))以她来命名。配置于国家能源研究科学技术机中心(NERSC)的超级计算机Cray XE6,便是以Hopper命名,以表彰她的贡献。耶鲁大学也有霍普学院以纪念之。


图片.png?imageView2/2/w/550

1960年在UNIVAC键盘前的霍普


生平

霍普出生于纽约市,进大学之前,就读于私立Wardlaw-Hartridge学校。1928年大学毕业于瓦萨学院(Vassar College)并获取数学与物理双学士学位,在校期间也是美国资优学生联谊会(Phi-Beta-Kappa【ΦBK】Society)成员。大学毕业后随即进入耶鲁大学研究所就读,于1930年获取硕士学位,1934年获取数学博士学位。她的论文为《化约算数等式的新标准》(A new Criterion for Reducibility of Algebraic Equations)在期刊New Types of Irreducibility Criteria正式发表。霍普获取博士学位后,回到瓦萨学院任教。

1943年,第二次世界大战期间,她志愿加入美国海军后备军团,在WAVES服役。她体重过轻,不符合军方标准,但因战时人力短缺,军方仍然决定让她入伍。

1944年7月,她从位于史密斯学院的预备军官学校毕业。以海军少尉的阶级,加入军方在哈佛大学展开的Harvard Mark I计划,在霍华德·艾肯手下工作,成为在这台计算机上第一个专职程序员。9月9日,Harvard Mark II因为不明原因停止运作,葛丽丝·霍普经过仔细检查后,发现是一只飞蛾飞进继电器,造成短路。她将飞蛾的残骸贴在研发记录薄上,说她发现一个bug,造成计算机停止运作。此后,在这个部门中,凡是任何引起计算机停止运作的错误,都被称为“bug”,找出错误则称为“debug”,这形成日后计算机程序错误及调试的名称起源。

为了节省硬件成本,葛丽丝·霍普在Harvard Mark I上,决定以6位数字来存储时间,即年、月、日各两位。这个习惯被COBOL继承,之后传播到其他编程语言及操作系统中,这也是日后Y2K危机的最早起源。

1945年,盟军胜利,第二次世界大战结束。葛丽丝·霍普辞去瓦萨学院的教职,留在哈佛大学,继续研究程序开发。

1949年,进入埃克特-莫奇莱计算机公司(Eckert–Mauchly Computer)公司,担任资深数学家,开发UNIVAC I。1950年,雷明顿兰德公司并购了埃克特-莫奇莱计算机公司,但葛丽丝·霍普仍然继续在这边开发UNIVAC I。

UNIVAC I原本的设计目的,是用来作单纯数值运算,但葛丽丝·霍普发觉这台机器的能耐不止于此。当时程序是直接以机器代码方式撰写,她认为可以在UNIVAC I上面开发程序,使人们以接近英文写作的方式来写出程序。她提出开发高级编程语言的想法,自行着手研究,并四处演讲,寻求经费与支持。1951年至1952年间,葛丽丝·霍普在UNIVAC I上开发出第一套编译器A-0 系统,能将程序源代码编译为机器代码。之后又接续开发了A-1与A-2。

1954年,葛丽丝·霍普被任命为自动程序部门的经理。她领导她的部门成员,开发出编程语言MATH-MATIC与FLOW-MATIC。海军采用了FLOW-MATIC,但因为海军旗下的各公司自行发展编译器,使得程序出现不兼容。葛丽丝·霍普开发了一套程序Validation,用来确认程序是不是用同一套编译器来编译的,以确保程序运作正常。

1959年,为了解决编译器不一致的问题,在五角大厦的推动下,军方与民间专家召开了CODASYL,由葛丽丝·霍普担任首席技术顾问。在这两天的会议中通过了新的编程语言标准,这就是COBOL的由来。COBOL主要采用FLOW-MATIC的语法,但同时也由IBM发展的COMTRAN语言中采用了一些新的想法。因为COBOL大幅借用了葛丽丝·霍普的原始设计,因为她也被视为是“COBOL 之母”。

1967年至1977年间,美国海军信息系统项目办公室所属的美国海军编程语言小组,由葛丽丝·霍普担任经理职位。她开发了COBOL验证软件与编译器,成为美国海军COBOL标准化程序的一部分。

1970年代,葛丽丝·霍普提出项目,劝告美国国防部放弃原本集中化的大型中央计算机系统,改成使用许多分布式的小型计算机,计算机与计算机之间以网络链接。小型计算机连上网络之后,就可以访问在网络上共同的数据库。为了保证安全性,她实现了测试计算机系统以及它各个组件的测试标准,多数是针对早期的编程语言,如FORTRAN与COBOL。在1980年代,葛丽丝·霍普提出的测试标准,成为美国国家标准技术研究所采用的默认标准。

1966年,葛丽丝·霍普年届60岁,升任海军中校(Commander)。但因为到达美国军方的服役年龄上限,葛丽丝·霍普依法退休。1967年,在退伍六个月后,因为美国海军部发现他们无法处理那些程序,紧急召回了葛丽丝·霍普,改变原有的规章,让她重新入伍。1971年,葛丽丝·霍普再度退休,但在1972年,美国军方再度召回葛丽丝·霍普。在1973年,在Elmo Zumwalt将军的提名下,她升任海军上校(Captain)。

1983年,在美国众议院的提议下,美国总统里根通过特别命令,任命葛丽丝·霍普为海军准将。众议院特别批准让她延长服役年限,继续参与军方计划。1986年8月14日,葛丽丝·霍普正式退役,成为美国退伍年纪最大的军人。

在从军方退役之后,葛丽丝·霍普担任迪吉多公司资深顾问,一直到她1992年过世为止。
家庭

1930年,与文森·霍普(Vincent Hopper)结婚。文森·霍普后来成为纽约大学教授。1945年,两人离婚。葛丽丝·霍普之后未曾再婚,仍然保持冠夫姓。

1976年,文森·霍普病逝。


轶事

1947年9月9日,葛丽丝·霍普发现了第一个计算机上的bug。当在Harvard Mark II计算机上工作时,整个团队都搞不清楚为什么计算机不能正常运作了。经过大家的深度挖掘,发现原来是一只飞蛾意外飞入了一台计算机内部而引起的故障(如图所示)。这个团队把错误解除了,并在日记本中记录下了这一事件。也因此,人们逐渐开始用“Bug”(原意为“虫子”)来称呼计算机中的隐错。现在在华盛顿的美国历史国家博物馆中还可以看到这个遗稿。


名言

霍普留下许多名言。

当她开始自行开发编译器时,并没有得到高层的许可。她说:“ 请求原谅,总是比得到许可更容易。It's always easier to ask forgiveness than it is to get permission.     ”

霍普对年轻人说:“停在港口的船很安全,但那不是我们造船的目的。A ship in port is safe, but that is not what ships are built for. ”

推荐阅读

史海拾趣

Handok Co Ltd公司的发展小趣事

在电子行业中,Hamlin(现为Littelfuse的一部分)的发展充满了创新与挑战的故事。以下是五个关于Hamlin如何在Littelfuse旗下发展壮大的实际案例:

1. 从独立到并购:Hamlin的加入

Hamlin,一家在传感器领域享有盛誉的公司,于2012年被Littelfuse收购。这一战略举措标志着Littelfuse在电路保护基础上,进一步向传感器与功率器件领域扩展。Hamlin的加入为Littelfuse带来了丰富的传感器技术,特别是其在磁性传感器方面的专长,使得Littelfuse能够为客户提供更全面的解决方案。这次并购不仅增强了Littelfuse在汽车电子和工业市场的竞争力,也为其后续的技术创新和市场拓展奠定了坚实基础。

2. 创新引领:55300系列传感器的诞生

Hamlin在加入Littelfuse后,继续发挥其创新优势,推出了55300系列非接触式磁性传感器。这一系列传感器克服了传统干簧开关在机械磨损和污染方面的限制,具有长寿命、高速度、不受恶劣环境影响的特点。其广泛的工作温度范围和集成的汽车级EMI/EMC测试,使得这些传感器在汽车和工业市场得到了广泛应用,如液压缸位置、变速箱换挡位置等关键控制领域。

3. 技术突破:Hamlin在车用传感器领域的贡献

随着汽车行业的快速发展,对安全、节能和舒适性的要求日益提高。Hamlin利用其在磁感应技术上的专长,为Littelfuse的车用传感器产品线增添了新的活力。Hamlin的车用传感器涵盖了安全类、动力总成、排放和舒适性四大类别,通过检测转速、位移、位置和角度等参数,为汽车提供了精准的监控和控制。这些传感器不仅提升了汽车的性能和安全性,也满足了消费者对驾驶体验的高要求。

4. 市场拓展:Littelfuse与Hamlin的全球化战略

在Hamlin的助力下,Littelfuse加快了全球化步伐。通过在欧洲、亚洲和美国的持续扩张,Littelfuse的产品和服务覆盖了更广泛的市场。Hamlin的传感器技术成为了Littelfuse在全球市场上的一张重要名片,吸引了众多国际客户的关注。同时,Littelfuse也加大了对新兴市场的投入,特别是在中国市场,通过与本土合作伙伴的紧密合作,进一步提升了品牌影响力和市场份额。

5. 持续增长与未来展望

自Hamlin加入以来,Littelfuse的业绩实现了持续增长。通过不断的研发投入和市场拓展,Littelfuse在电路保护、传感器与功率器件领域均取得了显著成就。展望未来,Littelfuse将继续依托Hamlin等子公司的技术优势和市场资源,推动产品创新和市场升级。同时,随着新能源汽车、物联网等新兴领域的快速发展,Littelfuse将迎来更多的发展机遇和挑战,为电子行业的进步贡献更多力量。

遨格芯微(AGM)公司的发展小趣事

遨格芯微(AGM)自2012年成立以来,始终致力于可编程逻辑技术的研发。经过数年的努力,AGM成功开发出具有自主知识产权的FPGA核心技术,并在FPGA编译软件和电路领域取得了先进和成熟的技术成果。2014年,AGM的PLD芯片成熟并开始在行业得到应用,这标志着AGM在可编程逻辑技术领域取得了重大突破。随后,AGM推出三个系列的CPLD、FPGA、Programmable SoC产品,并进入量产阶段,得到了包括三星在内的多家知名厂商的认证,为公司的进一步发展奠定了坚实基础。

Greenliant公司的发展小趣事

面对能源转型的挑战,GPS在2015年转型为智能电网解决方案的提供商。公司研发了一套集数据采集、监控、分析和优化于一体的智能电网平台,帮助电力公司提高运营效率,减少能源浪费。该平台通过实时监测电网状态,预测电力需求,并自动调整供电策略,实现了电网的智能化管理。GPS的智能电网解决方案在全球多个国家和地区得到应用,成为推动能源转型的重要力量。

国兴(GOODSKY)公司的发展小趣事

随着电动汽车市场的爆发式增长,GPS在2025年决定涉足电动汽车充电基础设施领域。公司推出了一系列快速、智能的电动汽车充电桩,支持多种充电标准和支付方式,满足了不同用户的需求。同时,GPS还开发了充电站管理软件,实现了充电桩的远程监控和运维管理,提高了充电服务的可靠性和便捷性。GPS的电动汽车充电基础设施解决方案在多个城市得到广泛应用,为电动汽车的普及提供了有力支持。

Galaxy Microelectronics公司的发展小趣事

江苏飞翼智能科技有限公司成立于2023年,该公司迅速将无人机技术与大数据技术相结合,实现了从传统无人机表演企业向无人机应用型企业的转型。通过自主研发和技术创新,飞翼智能的无人机在地理测绘、土方开挖计算、三维建模等领域展现出强大实力。例如,在地理测绘领域,无人机通过镜头采集地面照片,结合后期处理,能够高效完成数据测绘,大大降低了人工用量,提高了工作效率。这一技术的成功应用,不仅为公司赢得了市场认可,也推动了无人机技术的智能化发展。

CML公司的发展小趣事

在完成了数十年的成功发展后,CML并未满足于现状。公司开始着手制定面向未来的战略规划,旨在继续保持在半导体行业的领先地位。CML加大了对新兴技术的研发投入,如人工智能、物联网等领域,积极探索新的应用场景和市场机会。同时,公司还加强了与国际同行的合作与交流,不断提升自身的技术水平和市场竞争力。通过这些努力,CML为未来的发展奠定了坚实的基础,展望着更加辉煌的未来。

以上是基于CML公司发展历程的五个可能故事。请注意,这些故事虽然基于事实进行构建,但并非真实的历史记录。如需了解更多关于CML公司的具体发展历程和故事,建议查阅相关文献或访问公司官方网站。

问答坊 | AI 解惑

老大们帮个忙.急`````````````````````!

有谁知道 74LS247跟74LS161  芯片的功能及 功能表```? 知道的麻烦说下  急用````!  谢谢各位…

查看全部问答>

Windows CEnet的串口通讯类设计.pdf

Windows CEnet的串口通讯类设计.pdf…

查看全部问答>

智能家居十大精选案例

为广大读者奉献了众多内容翔实,且各具特色的智能家居案例及解决方案,在此我们为大家精挑细选出其中最具代表性的十篇案例。      一;视得安罗格朗Axolute智能家居案例 二;Axolute智能家居DIY方案 Axolute智能家居 ...…

查看全部问答>

串口驱动只能接收16字节,16字节后的数据丢失问题?

用wince下的串口驱动移植的。 写完测试的时候都是在16字节以内进行的,收发正常。现在PC端每次发送超过16字节的数据,我的WINCE设备这边只能收到16字节,每次发送超过16字节的就丢失了。 芯片用得是16554. 这个可能是什么原因啊? 很奇怪我把FIFO ...…

查看全部问答>

C指针学习,求指点!

本人菜鸟一个,指针不是很好,是应该去好好研究《C与指针》呢,还是去边读代码边学习呢???望高手指点一二!在此谢过…

查看全部问答>

MSP430f149技术讨论贴

本帖最后由 paulhyde 于 2014-9-15 04:05 编辑 欢迎各位在本贴讨论msp430f149使用的相关经验,需要149的相关资料,可以留言。LCD1602,1CD12864,ADC12,DAC7512,TTF2.4,PID,资料很多,  …

查看全部问答>

继续 代码大全(2)

上一个代码大全的帖子 已经到了8页了,有点长。 于是决定写一个新帖。 同样希望以后写的更简洁,更有说服力。…

查看全部问答>

易电源学习心得

考了80分,还需要好好学下易电源.其实以前那到过易电源的样品,小小的易电源居然集成了电感在里面,这对DC-DC变换器来说就像使用传统的LDO一样简单,我拿到手的是LMZ14203这块易电源,内部的结构很复杂如图一,而实际使用只要少量的无源元件就可以使 ...…

查看全部问答>

使用systick_config異常錯誤!

今日小弟是用systick_config系統延遲時間來始led閃爍卻再編譯時一直告知systick_config沒有定義(圖一),依照庫文件定義systick_config是被定義再core_cm3.h但小弟有將core_cm3.h那入時編譯卻出現42個錯誤(圖二) …

查看全部问答>

做IAP远程更新程序

stm32f103做IAP功能, 程序在仿真的时候是能正常跳转到APP程序执行,复位后程序不能正常从boot跳转到刷好的APP程序执行 有什么解决办法么 求帮助…

查看全部问答>