0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简要介绍世界上首位程序员的简要介绍

华秋商城 来源:djl 2019-09-02 16:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

战时打造的所有机器,最初构思时都以完成某项特殊工作(例如解程序或破解密码)为目标。但在爱达或图灵心目中,真正的电脑应该能完美且快速的执行任何逻辑作业。如此一来,机器的作业就并非只由硬件决定,软件(可以在上面跑的程序)也扮演重要角色。

图灵再度清楚说明这个概念:「我们不需要靠无数的不同机器来完成不同的工作。」他在1948年写道:「只需要一部机器就够了。在办公室为通用机器『设计程序』来完成这些工作,取代了为执行不同工作而要生产不同机器的工程问题。」

理论上,像ENIAC这样的机器应该可以程序化,甚至当成通用机器来使用。但实际上,载入新程序的程序非常辛苦,包括必须动手一一拔除连结电脑中不同单元的电缆。战时打造的机器无法以电子速度转换程序,因此催生现代电脑的下一个步骤就很重要:设法把程序储存在机器的电子记忆体中。

霍普—胆识过人的程序设计先驱


▲ Grace Hope(右二)与 UNIVAC(照片来源:Public.Resource.Org)

从巴贝奇以降的电脑发明者都把焦点放在硬件上。但二次大战期间参与计算工作的女性和爱达一样,很早就看出程序设计的重要。她们设法把指挥硬件作业的指令编成程序码,软件中蕴含的神奇程序,能以奇妙的方式改变机器的作业。

这群程序设计先驱中,故事最缤纷有趣的是胆识过人、活泼迷人的海军女军官霍普(GraceHopper),她先是为哈佛大学的艾肯工作,然后又加入艾科特和莫渠利的团队。她在大学时代主修数学和物理,从瓦萨学院毕业后,进入耶鲁大学攻读研究所,并且在 1934 年拿到数学博士的学位。

出人意料之外的是,霍普的教育过程在当时其实不算太不寻常。耶鲁大学在1895 年首度颁发数学博士学位给女性,而她是第十一位获颁耶鲁数学博士学位的女性。女性数学博士在 1930年代并不算太罕见,尤其如果她们出身名门的话。事实上,比起后来的世代,霍普成长的年代更常见到女性数学博士。

1930年代,美国有113位女性获得数学博士学位,占美国数学博士总数的15%。但到了 1950 年代,只有 106 位女性获得数学博士学位,只占总数的 4%。(到了二十一世纪的最初十年,情况已大幅好转,那段期间美国总共有 1,600 位女性获颁数学博士学位,占总数的30%。)嫁给比较文学教授文森.霍普(Vincent Hopper)之后,葛瑞丝.霍普到瓦萨学院任教。

和其他数学教授不同的是,她坚持学生必须具备良好的写作能力。她上机率课时,会先讲解自己最爱的数学公式,然后要求学生以此为题写一篇文章。她批改时,也会就文章清晰度和写作风格来评析。

「我(在文章上)写满评语,而他们会抱怨这是数学课,又不是英文课,」她回忆道:「然后我会解释,除非他们懂得怎么和别人沟通,否则学习数学毫无用处。」终其一生,霍普一直很擅长把科学问题(例如有关轨道、流体流动、爆炸、天气型态的问题)转换为数学方程序,然后再翻译成一般人听得懂的英文。这项才能也帮助她成为优秀的程序设计师。

霍普的长处是很懂得把现实世界的问题转化为数学方程序,然后用机器能够了解的方式下达指令,和机器沟通。「我学习海洋学的术语,还有和扫雷、***、近发引信及生医领域相关的种种词汇,」她解释:「我们必须学习他们的用语,才有办法解决他们的问题。我可以随时转换词汇,先用高度技术性的术语跟程序设计师沟通,然后几小时之后,再用完全不同的词汇向主管报告相同的事情。」要成功创新,有赖于清楚的沟通。

由于霍普清晰準确的沟通能力,艾肯指派她撰写电脑程序设计手册,这是全世界第一部程序设计手册。有一天,艾肯站在霍普的办公桌旁,对她说:「妳要写一本书。」

「我没办法写书,」霍普回答:「我从来没有写过书。」

「妳现在加入海军了,」艾肯说:「妳要撰写一本书。」

结果霍普写出一部厚达五百页的巨着,裡面包含了马克一号的发展史和程序设计指南。霍普的引言就从巴贝奇开始说起。她和爱达一样,知道巴贝奇分析机有一种特质,也就是她和艾肯所深信,马克一号有别于其他电脑的特质。艾肯的马克一号和巴贝奇未完成的机器一样,藉由打孔纸带接收源源不绝的指令,可以透过重新编程,传达新的指令。

霍普每天晚上都把当天撰写的内容唸给艾肯听,她因此领悟到成为优秀写手的简单诀窍,她说:「他指出,如果你大声朗读时,会结结巴巴读不顺,那么最好修改句子。我每天都得朗读五页我写下的内容。」于是,她写的句子变得简洁、生动、清晰。霍普和艾肯成为最佳拍档,活生生是百年前爱达与巴贝奇的现代翻版。霍普愈深入了解爱达,就愈认同她。「她写了第一个程序迴圈,」霍普说:「我绝对不会忘记这点。我们都不会忘记。」

霍普撰写的电脑发展史偏重个人,所以她的书强调个人角色。反之,在霍普的着作完成后没多久,IBM的主管也推出自己的马克一号发展史,把大部分功劳都归诸在纽约恩狄考特建造机器 IBM 团队。「以组织歷史取代个人歷史,最符合IBM的利益,」曾深入研究霍普的史学家拜耳(Kurt Beyer)指出:「根据IBM的说法,公司才是科技创新的所在。组织裡的工程师团队扮演无名英雄,逐步推动进步,取代了独自在实验室或地下室埋首研究的激进发明家。」

在 IBM 版本的歷史中,马克一号涵盖的一长串小创新(例如棘轮式计数器和双层馈卡机制等),都要归功于一群工程师在恩狄考特默默耕耘、通力合作所促成的。

霍普版的歷史和IBM版之间的差异,其实不只关乎谁功劳最大的争议,而隐含了更深远的意义,进一步暴露出双方的创新史观在根本上的差异。和霍普一样,有些科技相关研究也强调创意十足的发明家推动了跳跃式的创新。其他研究则强调团队和组织的角色,例如贝尔实验室工程师的努力,以及IBM恩狄考特团队的合作成果。后者试图说明,有些科技突破也许表面看来像是灵光闪现后的大跃进,实际上却是逐步演进的结果,等到各种想法、概念、技术和工程方法都同时酝酿成熟时,才一举毕其功。这两种科技发展史观都不够完善。事实上,数位时代大部分的伟大创新,都仰赖拥有高度创造力的个人(莫渠利、图灵、冯诺伊曼、艾肯等),和有能力实现创意的团队之间的良好互动。

霍普在哈佛大学开发出来的其中一种程序是「次常式」,是为了特殊工作而编写的大段程序码,可暂时储存起来,在主程序某个部分需要用到时再叫出来使用。「次常式是明确、简洁,而且通常一再重复的程序,」她写道:「哈佛的马克一号包含了为 sin x、log10x、10x 设计的次常式,每个次常式都用一个作业码来唿叫。」

爱达在关于分析机的评注中,最先描述了这个概念。霍普累积了许多这类次常式。她为马克一号写程序的时候,也发展出「编译器」(compiler)的概念,她发明一种程序,能把源码转译为不同电脑处理器使用的机器语言,加速了为多部机器撰写相同程序的过程。

除此之外,「bug」(错误和「debug」(除错)这两个词,也在霍普团队推波助澜下,成为电脑界的流行用语。当时打造马克二号电脑的哈佛建筑物没有装纱窗。有一天晚上机器突然故障,工作人员开始检查究竟哪裡出问题。他们发现有一隻翅膀达四公分宽的大飞蛾卡死在电机继电器中。于是他们取出飞蛾,把牠用胶带黏在对数表上,并在实验日誌中记下:「面板F,(飞蛾)在继电器中。找到第一隻真正的虫(bug)。」从此他们就把侦错和除错称为「debug」。

电脑创新者和其他开路先锋一样,如果在半途卡住了,很容易从超前变落后。执着和专注等特质令他们创造力丰沛,但是面对新观念时,他们也可能因为相同的特质而抗拒改变。贾伯斯的执着和专注十分有名,然而当他领悟到必须改弦易辙时,他会突然改变主意,令同事眼花撩乱,困惑不已。艾肯却缺乏这种灵活应变的能力,只是一味凭着海军指挥官的本能,采取中央集权的管理方式。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电机
    +关注

    关注

    143

    文章

    9485

    浏览量

    153158
  • 编译器
    +关注

    关注

    1

    文章

    1669

    浏览量

    51079
  • 程序设计
    +关注

    关注

    3

    文章

    263

    浏览量

    31557
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    汇编程序段的定义介绍

    已经由操作系统自动设置为代码段的段基址,数据段的段基址则需要程序员手动装入DS中; ASSUME伪指令用于指定每一个数据段所对应的段基址寄存器。如上面的代码中CODE段的段基址寄存器为CS,DATA段
    发表于 11-21 08:19

    奔赴热AI,码力全开!Talkweb House@1024程序员日系列活动圆满收官

    1024程序员日”系列活动至此划上了一个圆满句号。本届1024程序员节以“AI构建世界,智能引领未来”为主题,广邀技术大咖、产业领袖、企业代表与全球开发者齐聚星城
    的头像 发表于 10-27 18:59 420次阅读
    奔赴热AI,码力全开!Talkweb House@1024<b class='flag-5'>程序员</b>日系列活动圆满收官

    开鸿智谷“以赛促学、以赛选才”|1024程序员节暨开源鸿蒙构建大会圆满落幕!

    10月24日,由开鸿智谷联合主办的长沙1024程序员节暨开源鸿蒙构建大会在长沙圆满落幕。本次活动以“湘聚长沙,共赴热AI”为主题,通过技术分享与实战竞赛相结合的方式,着力培养“开源鸿蒙+AI”领域
    的头像 发表于 10-27 17:58 473次阅读
    开鸿智谷“以赛促学、以赛选才”|1024<b class='flag-5'>程序员</b>节暨开源鸿蒙构建大会圆满落幕!

    蓝牙低功耗模块的原理和应用介绍

    随着物联网技术的快速发展,蓝牙低功耗模块在连接各种设备和传输数据方面发挥着重要作用。今天将为您介绍蓝牙低功耗模块的工作原理以及其广泛的应用领域。 蓝牙低功耗模块的原理 蓝牙低功耗模块是基于蓝牙5.0
    的头像 发表于 05-21 15:56 904次阅读

    NVMe协议简要分析

    (Serializer/Deserializer)将数据发送至PCIe链路中。 图3 NVMe 分层结构示意图 由于NVMe协议是基于PCIe协议实现的,下面通过在PCIe拓扑结构中介绍NVMe协议中的SQ、CQ
    发表于 05-15 00:34

    C语言的历史及程序介绍

    电子发烧友网站提供《C语言的历史及程序介绍.pdf》资料免费下载
    发表于 04-09 16:10 0次下载

    如何在 树莓派 上编写和运行 C 语言程序

    ,一本很好的书是BrianKernighan和DennisRitchie所著的《TheCProgrammingLanguage》。这本书对经验丰富的程序员和想学习C语
    的头像 发表于 03-25 09:28 936次阅读
    如何在 树莓派 上编写和运行 C 语言<b class='flag-5'>程序</b>?

    零基础入门:如何在树莓派上编写和运行Python程序

    在这篇文章中,我将为你简要介绍Python程序是什么、Python程序可以用来做什么,以及如何在RaspberryPi上编写和运行一个简单的Python
    的头像 发表于 03-25 09:27 1523次阅读
    零基础入门:如何在树莓派上编写和运行Python<b class='flag-5'>程序</b>?

    PID发展趋势分析

    摘要:文档中简要回顾了 PID 控制器的发展历程,综述了 PID 控制的基础理论。对 PID 控制今后的发展进行了展望。重点介绍了比例、积分、微分基本控制规律,及其优、缺点。关键词:PID 控制器 PID 控制 控制 回顾 展望
    发表于 02-26 15:27

    GaNSafe–世界上最安全的GaN功率半导体

    电子发烧友网站提供《GaNSafe–世界上最安全的GaN功率半导体.pdf》资料免费下载
    发表于 01-24 13:50 0次下载
    GaNSafe–<b class='flag-5'>世界上</b>最安全的GaN功率半导体

    简要解析HDMI 2.2标准

    在CES 2025上,HDMI Forum正式宣布了HDMI 2.2标准。这一新版本标志着自2017年HDMI 2.1发布以来的重大技术飞跃。本文将围绕HDMI 2.2标准进行简要解析,并与之前的版本进行对比。
    的头像 发表于 01-10 09:34 1855次阅读
    <b class='flag-5'>简要</b>解析HDMI 2.2标准

    阿里云升级通义灵码AI程序员,全面上线

    近日,阿里云宣布其备受瞩目的通义灵码AI程序员已正式全面上线,为开发者带来更为强大和便捷的编程辅助工具。 此次上线的通义灵码AI程序员,在功能上实现了全面升级。现在,它支持VS Code
    的头像 发表于 01-09 11:16 956次阅读

    TMS320C6000程序员指南

    电子发烧友网站提供《TMS320C6000程序员指南.pdf》资料免费下载
    发表于 12-24 17:19 2次下载
    TMS320C6000<b class='flag-5'>程序员</b>指南

    TMS320C55x DSP CPU程序员参考补充

    电子发烧友网站提供《TMS320C55x DSP CPU程序员参考补充.pdf》资料免费下载
    发表于 12-21 11:36 3次下载
    TMS320C55x DSP CPU<b class='flag-5'>程序员</b>参考补充

    UCD3138A64/UCD3138128程序员手册

    电子发烧友网站提供《UCD3138A64/UCD3138128程序员手册.pdf》资料免费下载
    发表于 12-09 14:42 1次下载
    UCD3138A64/UCD3138128<b class='flag-5'>程序员</b>手册