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」。

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

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

    关注

    139

    文章

    8312

    浏览量

    142059
  • 编译器
    +关注

    关注

    1

    文章

    1576

    浏览量

    48606
  • 程序设计
    +关注

    关注

    3

    文章

    258

    浏览量

    30188
收藏 人收藏

    评论

    相关推荐

    薪资高、青春饭,是不是程序员=青楼?

    花期太短。技术迭代快,年龄大容易失业。 就这几年的互联网环境而言,不管是前端、Java、Android开发等等行业。已经感受到程序员不是太卷就是工作难找,薪资过低。以前高工现在拿着中低程序员薪资
    发表于 03-06 21:32

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    。 如何正确看待鸿蒙? 我作为程序员来说,首先是看鸿蒙的发展、市场开发岗位、薪资以及前景。 这几年对鸿蒙的发展情况来分析,从2019年开始鸿蒙的出来今天,华为鸿蒙取得了很大的成就。从“不兼容
    发表于 01-16 22:13

    程序员表白程序

    电子发烧友网站提供《程序员表白程序.rar》资料免费下载
    发表于 11-21 10:41 0次下载
    <b class='flag-5'>程序员</b>表白<b class='flag-5'>程序</b>

    Linux perf 简要介绍

    一、引言 (Introduction) 简要介绍Linux perf (Brief Introduction to Linux perf) Linux perf(性能分析工具)是一个功能强大且灵活
    的头像 发表于 11-09 17:06 361次阅读

    喜迎1024程序员节!祝各位开发者们“码”到“程”功!

    程序员们最为敏感的数字。当然,也因为程序员就像是一个个1024,以最低调、踏实、核心的功能模块搭建起这个科技世界。 1GB
    的头像 发表于 10-24 20:00 406次阅读
    喜迎1024<b class='flag-5'>程序员</b>节!祝各位开发者们“码”到“程”功!

    什么是LDO?LDO中的噪声和PSRR介绍

    在本文中,我们将介绍噪声和电源抑制比 (PSRR) 在低压差 (LDO) 稳压器中的影响。让我们简要讨论一下什么是 LDO。
    的头像 发表于 09-26 14:29 2615次阅读
    什么是LDO?LDO中的噪声和PSRR<b class='flag-5'>介绍</b>

    AVR单片机的实时时钟校准和补偿介绍

    嵌入式计时应用通常使用 32.768 kHz 外部晶振作为时钟源,因为此类晶振的精度高于内部振荡器的精度。然而,精度会受到多种因素的不利影响。本文档主要介绍 PCB 设计、老化和温度漂移。此外,还将
    发表于 09-19 08:06

    ARM Cortex-A系列ARMv8-A程序员指南

    。 有关ARMv7-A架构的一般介绍,请参阅ARM®Cortex®-A系列程序员指南。 本指南还可以帮助您熟悉本卷中讨论的一些概念。 然而,ARMv8-A架构配置文件向后兼容早期版本,就像ARM架构
    发表于 08-22 07:22

    AS950 ARM应用库程序员指南

    )·支持使用ADS构建示例所需的实用程序。 还提供了一个通用的C实用程序库util_lib来演示每个主要组件。 根据许可协议的条款,您可以自由地将库中包含的任何源代码合并到任何产品中。 以下各节简要
    发表于 08-18 07:31

    移植ARM DHCP服务器版本1程序员指南

    的, 大致了解DHCP服务器的作用。 这是为那些想要将ARM DHCP服务器移植到嵌入系统的程序员编写的。 这本书分为以下几章: 第一章 导言 阅读本章, 介绍ARM动态主机服务器移植程序( DHCP
    发表于 08-18 06:46

    霓虹灯程序员指南

    如果您对ARM技术完全陌生,请阅读Cortex-A系列程序员指南,了解有关ARM架构配置文件和一般编程指南的信息。 ·霓虹灯技术是ARM高级单指令多数据(SIMD)扩展的实现。 ·霓虹灯单元是执行
    发表于 08-17 06:32

    ARMv8-A霓虹灯程序员指南

    程序员,如固件、设备驱动程序或android内核开发人员•希望为基于Arm的目标设备优化库或应用程序程序员•非常热衷于Raspberry Pi爱好者本指南涵盖了如何开始使用Neon,
    发表于 08-08 07:25

    ARM系统跟踪Macrocell程序员模型架构规范1.1版

    ARM 系统跟踪大型电池程序员示范建筑规格V1.1 建筑规格
    发表于 08-02 10:11

    61.[程序员小飞]如何在3分钟内安装好数据库MySql和Navicat,简单又易懂

    程序员
    充八万
    发布于 :2023年07月20日 09:16:19