Redian新闻
>
第一位程序员是一位女士

第一位程序员是一位女士

科技
ENIAC:1946年第一台大型通用电子计算机

距离巨大的真空管阵列(1946)诞生在宾夕法尼亚州那个燥热房间里的一百多年前,在一个伦敦的画室里,一位衣着得体的维多利亚绅士在展示一个用巧木和铜制成的小装置。来宾之中,一位女士和她朋友的女儿站在最前面。小女孩十几岁,披着一头乌黑的长发、有很强的数学天赋、还喜欢赌马。当她仔细观察过这个装置,并意识到这位年长的先生想要做什么时,她做出一个令人惊讶的决定:加入这项可能会改变历史的事业。

这就是查尔斯·巴贝奇(Charles Babbage)和他的合伙人拉芙莱斯女士(Lady Lovelace)的初次相遇。在美国工程师制造出ENIAC之前的一个多世纪,他们俩就已经发明了非常接近ENIAC的计算机。“分析引擎(Analytical Engine) "是一个关于两个天赋异禀、命运多舛的英国怪人的故事,如果巴贝奇的朋友查尔斯·狄更斯是一位科幻小说家的话,他们的传记可能是狄更斯编造的。此篇就是讲述这些维多利亚时代的计算机先驱们的发明故事和非传统的个人生活。


文章选自:Howard Rheingold, Tools For Thought

Chapter 2, The First Programmer Was a Lady

翻译: Jessie, 多多


查尔斯·巴贝奇

暴躁的发明天才

巴贝奇有一本传记叫做《暴躁的天才》。从他计划并实际取得的成就来看,他确实是个天才。同时他的暴躁也是出了名的。巴贝奇是个彻头彻尾的英国人,固执古怪,远见卓识,有时也很散漫。他相当富有,直到他把财富投入到制造一台计算机的梦想中。

巴贝奇发明了捕牛器(cowcatcher)--一种装在蒸汽机车前部的金属装置,可以将迷途的牛赶走。他还设计了一种分析整个行业的方法,这种研究复杂系统的方法在100年后为运筹学奠基。当他把他的新分析方法应用于印刷业的研究时,他的出版商非常生气,在此之后不再为他出版书籍。

他毫不气馁,并用他的新方法分析当时的邮政系统,证明了每个邮件根据其运输距离为其分配价值的成本远比运输成本要高。英国邮局通过收取统一的费率,不考虑每件邮件的运输距离,在保证经济性的同时大大提高了运输能力,这就是至今仍在世界各地存在的 "便士邮政"(penny Post)。

巴贝奇设计了第一个用于铁路的速度计,他还出版了第一本关于精算理论的综合论文(促进了保险业的建立)。基于他对密码分析的兴趣,他发明并解决了密码问题—为 "无法撬动的锁 "制作了万能钥匙,启发了无数计算机建造者。他是第一个提出通过观察树木年轮的周期可以追溯过去几年的天气的人。他还热衷于一些疯狂的想法,虽然这些想法后来被历史证明只是疯狂的想法而已。

他的人际关系和他的智力冒险一样跌宕起伏,从巴贝奇参与的公开争斗的数量来看。除了与皇家学会的长期争斗外,巴贝奇还与风琴师和街头音乐人进行了长期的论战。巴贝奇会给编辑们写关于街头噪音的信,而伦敦一半的风琴师喝醉时都会在巴贝奇的窗下演奏小夜曲。一位传记作者B.V.鲍登指出:"这个人的悲哀之处在于,虽然他的想象力和视野是无限的,但他的判断力却与之不匹配,他的急躁使他无法容忍那些不能感同身受他项目的人。"

巴贝奇涉猎了六门科学,并随身带着一个便携式实验室旅行。他也是一个极其吹毛求疵的人,目光敏锐,脾气暴躁,他给数学表格出版商写过愤怒的信,指责他们在发布自己的计算过程中的不准确之处。毕竟,导航表的错误对海员来说是一个生死攸关的问题。而对数表中的一个错误会严重阻碍思想家的工作。

巴贝奇的吹毛求疵间接使他成为计算机的鼻祖之一。作为一个声名显赫的数学家和天文学家,他痛恨自己不得不花时间去研究对数表,改掉一个个错误,这些错误是由 "靠七位数对数为生的年长的康沃尔神职人员“进行很容易犯错的手工工作时延续下来的。

巴贝奇留下了一本天马行空的回忆录《一个哲学家的生活片段》--这部作品被计算机先驱赫尔曼·戈德斯坦描述为 "一套从崇高到荒谬的论文集,从深奥到无稽的恶趣味。事实上,巴贝奇的大部分生涯都是这样的。他的行为荒诞不经,却不乏挚友左右,这真是个奇迹"。

其中一段,巴贝奇提到他设计计算机的原始灵感。

在我的脑海中,最早的关于用机器计算算术表的想法是这样产生的。一天晚上,我坐在剑桥大学分析学会的房间里,头靠在桌子上,处于一种梦幻般的状态,面前放着一张对数表。另一个同事走进来,看到我半梦半醒,说:"嘿,巴贝奇,你在做什么梦呢?" 我回答说:"我在想,所有这些表格(指对数表)应该都可以用机器来计算。" 

1822年,巴贝奇在皇家天文学会展示了一个由齿轮、轮子和轴组成的小型机器工作模型。该设备能够通过计算各组数字之间的连续差值来进行多项式方程的计算。他基于此模型发表的论文获得了学会颁发的第一枚金质奖章。

在那篇论文中,巴贝奇描述了一个更加雄心勃勃的 "差分引擎 "的计划。1823年,英国政府授予他第一笔补助金,这笔补助金在接下来几年里不时发放,并且颇受争议。巴贝奇聘请了一位机械大师,在他的庄园开始打造这个机器,并逐渐认识到他的梦想是如何远远领先于他那个时代的技术能力。

英国政府委托的差分引擎比在皇家天文学会前演示的模型要大得多,也复杂得多。但当时的工具制造技术还达不到巴贝奇的设计所要求的精度水平。工作持续了多年,但没有成功。最早的成功展示看起来也是巴贝奇事业的高潮,随后便遭遇停滞和长期的衰落。英国政府最终放弃了对该计划的资助。

在与不相信他所珍视的想法的人面前,巴贝奇从来都是正面刚。他与政府和他的同时代人在 "差异引擎 "上发生争执,其中许多人开始嘲笑疯狂的老查利·巴贝奇。在他努力证明他们都是错的时候,他有了一个更加雄心勃勃的发明想法。巴贝奇在一个白日梦般的项目中已经深入得荒唐可笑,还开始构想另一个项目。1833年,他想出了一个比他花费数年时间也没能造出的设备复杂得多的东西。

巴贝奇推断,如果人们能够建造一台机器来进行一种计算,那么是否有可能建造一台能够进行任意一种计算的机器呢?与其建造许多小型机器来进行不同种类的计算,是否有可能通过改变部件之间的相互作用的顺序,使一台大型机器的部件在不同时间执行不同的任务?

巴贝奇偶然生出了通用计算机的想法。这个想法后来由阿兰·图灵提出--另一位不幸地领先于他的时代的杰出的、古怪的英国数学家--在20世纪30年代再次考虑这个问题时,产生了重大影响。巴贝奇把他假设的主计算器称为 "分析引擎(Analytical Engine)"。通过使用不同的 "行动模式 "来重新配置各部件在每次计算中的运动顺序,使相同的内部部件能够进行不同的计算。一个详细的计划被制定出来,然后重新绘制,再重新绘制。

britannica.com/technology/Analytical-Engine

the store and the mill

"存储器 "本质上是存储器,存储在打孔卡上,如上图所示。

"磨盘 "做实际的计算工作;在巴贝奇的机器中,这是用齿轮和杠杆完成的。

中心单元是 "磨盘(the mill)",一个能够将数字精确到小数点后50位的计算引擎,其速度和可靠性可以保证让康沃尔牧师的计算器安然无恙。多达1000个不同的50位数字可以储存在巴贝奇称为 "存储器(the store) "的记忆单元中供以后参考。为了显示结果,巴贝奇设计了第一个自动排字机。

数字可以从磨盘或从巴贝奇改造的法国织布机得到的的打孔卡输入系统中输入到存储器。此外,卡片可以用来将数字输入磨盘,并指定要对数字进行的计算。通过正确使用卡片,可以指示磨盘将结果暂时放在存储器里,然后将储存的数字返回给磨盘,供以后处理。分析引擎的最后一个组成部分是一个读卡设备,实际上是一个控制和决策单元。

巴贝奇本人没有活到分析引擎的诞生,实用的版本最终由巴贝奇的儿子建造。在他生命的最后阶段,据一位访客的回忆,巴贝奇在他的大房子里几乎所有的房间都摆满了他的引擎的废弃模型。一旦发现一种可能起作用的构造方式,巴贝奇就会重新做。

分析引擎的四个子组件的功能非常类似于现代计算机械中的类似单元。磨盘(the mill)类似于今天的数字计算机中央处理器,存储器(the store)是存储装置。二十世纪的程序员会认识到打印机是一个标准输出设备。然而,正是输入设备和控制单元,使它有可能超越计算。

分析引擎的输入部分是编程史上的一个重要里程碑。巴贝奇从法国发明家雅克尔那里借鉴了打孔卡编程的想法,雅克尔发明了一种在布上编织图案的机械方法,引发了纺织业的革命。织布机使用金属棒阵列来自动将线拉到合适的位置。为了创造图案,雅克尔的设备在杆子和线之间插入了一张上面打有孔的硬卡。卡片的设计是为了阻止一些杆子在每次经过时触到线头;卡片上的孔只允许某些杆子将线头带入织机。每次抛出梭子时,新的卡片会出现在梭子的路径上。因此,一旦特定织造图案的指示被转化为打在卡片上的孔的图案,并且卡片以适当的顺序排列以呈现给读卡设备,布的图案就可以被预先编程,整个织造过程就可以自动化。

巴贝奇这些卡片是自动计算的关键。这是一个控制那些令人沮丧的抽象的 "行动模式 "的有形手段。巴贝奇把复杂计算的步骤说明写进了一系列打在卡片上的编码孔中,这将改变磨盘(the mill) 在每个步骤中的工作方式。

在巴贝奇的这项改革运动中,他遇到了一个女人。这个女人成为他的伙伴、同事、共谋者和守护者。她一眼就看出了巴贝奇打算用他的分析引擎做什么,并帮助他构建分析引擎软件。她与巴贝奇的合作以及她写的关于引擎可能性的文章,使拉芙莱斯伯爵夫人——奥古斯塔·艾达·拜伦成为编程艺术和科学的奠基者和守护神。

拉芙莱斯伯爵夫人:艾达·拜伦

数学家 逻辑学家 子程序、循环和跳转

艾达的父亲正是拜伦勋爵,一个当时风评很差的人物。他与艾达母亲的分离是那个时代人尽皆知的家庭事件之一,而艾达在一个月大之后就再也没有见过父亲。拜伦在他的一些诗歌中写下了关于艾达的凄美段落,她要求死后埋在他父亲身边--可能是为了报复比她更长寿的母亲。艾达的母亲被传记作者描绘成一个虚荣和傲慢的维多利亚时代人物,她认为每天服用带有鸦片酊的 "补药 "是治疗她美丽、直言不讳的女儿不守规矩行为的最佳方法,因此迫使她上瘾这种补药。

艾达在生活中很早就展现了她的数学天赋。她家最亲密的朋友之一是英国著名的逻辑学家奥古斯都·德·摩根。她受到很好的教育,但总是渴求更多的知识。艾达积极寻找完美的导师,她认为与她母亲同时代的查尔斯·巴贝奇就是这个人。

在巴贝奇为拜伦夫人的朋友们举办的演示会上,年轻的艾达·拜伦第一次看到了差分引擎的工作模型,德·摩根的夫人当时就在场。在她的回忆录中,德·摩根夫人回忆了这个装置对奥古斯塔·艾达的影响。"当聚会的其他成员用一种类似野蛮人第一次看到望远镜或听到枪声时的那种表情和感觉注视着这个美丽的发明时,拜伦小姐,尽管她很年轻,却理解了它的工作原理,看到了这个发明的伟大之处。"

在工业革命时期,这种在客厅里展示机械装置的做法在英国上层社会中很流行。当她的长辈们窃窃私语,不理解这个计算器和他们在其他演示中观察到的各种水泵之间的区别时,年轻的艾达开始探究机械的各个部分,尔后成为第一个计算机奇才。

艾达是少数几个认识到 "差分引擎 "与过去的机械计算器完全不同的设备之一的人。以前的设备是模拟的(通过测量进行计算),而巴贝奇的是数字的(通过计数进行计算)。更重要的是,巴贝奇的设计结合了算术和逻辑功能。(巴贝奇最终发现了德·摩根的朋友乔治·布尔关于 "逻辑代数 "的新著作--但那时对艾达来说已经太晚了)。

艾达曾接受过当时最著名的逻辑学家德·摩根的指导,她对这种设备的可以做什么的可能性有自己的想法。对于艾达在数学、逻辑方面的综合天赋,巴贝奇自己也惊叹。"她似乎比我更了解它,而且更善于解释它"。

十九岁时,艾达嫁给了拉芙拉斯男爵金勋爵。她的丈夫也是一位数学家,尽管他的才能远远不及艾达。年轻的拉芙莱斯伯爵夫人继续她与巴贝奇在数学和计算方面的合作,坚决支持这个她认为可靠的想法,尽管当时英国机构中不那么有远见的成员将巴贝奇视为一个怪人。

巴贝奇于1840年在欧洲大陆巡游,以他从未成功制造的设备为主题进行演讲。在意大利,一位名叫Menabrea的伯爵在一次讲座上做了大量笔记,并在巴黎发表。艾达将这些笔记从法语翻译成英语,并写了一份增编,其长度是她所翻译的文本的两倍多。当巴贝奇读到这些材料时,他敦促艾达将她的笔记完整地出版。

拉芙莱斯女士发表的笔记今天仍然有意义,尤其对程序员来说。他们可以看到分析型工程师是多么真正领先于他们的同时代人。B.H.纽曼教授在《数学公报》中写道,她的观察 "表明她已经完全理解了计算机的编程原理,比其时代早了一个世纪"。

我想说,数学入门时最主要的困难之一,是公式转换时,用奇怪的、完全无法想像、初学者认不出来的的方式转换。我常常想到向导仙女,一下子在人手中以一个样子显现,一下子又变成完全不一样的样子。

艾达对打孔纸板卡片的数学意义特别感兴趣,这些卡片将被用来向巴贝奇的设备输入数据和方程式。艾达的文章题为 "对巴贝奇先生的分析引擎的观察",其中有不止一段预言,她同时代的大多数人都没有注意到,但随着一个世纪的过去,这些预言的意义越来越大。

分析引擎的显著特征,是将雅克尔(Jacquard)设计的原理引入其中,即通过打孔纸板卡片来调节织锦中复杂的图案。这种设计原理可赋予机械广泛的能力(可被编程的能力)。两种引擎之间的区别就在于此,差异引擎中不存在这类东西。我们可以毫不夸张地类比,分析引擎编织代数图案就像提花织机编织花朵和叶子一样……


然而,算法的想象力在应用卡片的想法出现时被扩展。分析引擎与单纯的 "计算机 "并不一样,它拥有完全属于自己的地位,它的发明动机是最有趣的。在使一般符号以无限的种类和范围组合在一起的机制中,一个统一的链接包含着物质的运作和数学的抽象心智过程。一种新的、庞大而强大的语言被设计出来,供未来分析使用。


在人类的实际应用中运用它的原理,能够比我们迄今为止所拥有的手段更迅速和准确。因此,在数学世界中不仅有精神和物质,还有理论和实践,密不可分。我们不知道,迄今为止是否有任何与 "分析引擎 "性质相同的东西被提出过,并被认为是一种实际的可能性,而不是一种思考或推理机器的想法。

作为一名数学家,艾达对将繁重的计算工作自动化的可能性感到兴奋。但她对这些设备的编程所依据的原则更感兴趣。如果她不是那么早离开这个世界,艾达有可能将十九世纪的技术水平推进达到真正的计算机水平。

尽管引擎还没有建成,艾达还是尝试着编写指令序列。她注意到这门新艺术中几个特殊技巧的价值,这些技巧对于现代计算机语言来说仍然是必不可少的--子程序、循环和跳转。如果你的目标是用子计算来编织一个复杂的计算,其中一些可能会重复很多次,那么反复编写一打或一百条指令的序列是很乏味的,为什么不把经常使用的计算或子程序的副本储存在一个程序 "库 "中,供以后使用呢?然后,当你的计算需要时,你的程序可以自动从库中 "调用 "子程序。这种子程序库现在几乎是每一种高级编程语言的一部分。

分析引擎和数字计算机非常擅长一遍又一遍快速地做事情。通过发明一条指令,将读卡设备备份到指定的前一张卡上,从而使指令序列可以多次执行,艾达创造了循环--也许是每一种当代编程语言中最基本的程序。

正是这个条件跳转使艾达作为逻辑学家的天赋得到了发挥。她想出了另一条操作读卡器的指令,但这一指令不是备份和重复卡片的序列,而是让读卡器在满足特定条件的情况下跳到序列中任何部分的另一张卡片。在以前的纯算术操作列表中加入这个小小的 "如果",意味着程序可以做更多的事情而不是计算。以一种原始但有潜在意义的方式,引擎现在可以做决定了。

她还指出,有一天,机器的能力可能会远远超过维多利亚时代的技术,并猜测这种机器是否有可能实现智能。她在《观察》一书中提出的反对人工智能的论点,在一个世纪后几乎被另一位软件预言家阿兰·图灵称赞应永载史册,图灵将她的论点称为 "拉芙莱斯夫人的反对意见"。这是一个在关于机器智能的辩论中仍然经常听到的观点。艾达写道:"分析引擎,没有任何理由去创造任何东西。它可以做任何我们知道如何命令它执行的事情"。

人们不知道艾达是如何以及何时开始她的秘密且灾难性的赌博活动的。没有任何证据表明巴贝奇让她沾染了这个恶习。有一段时间,拉芙莱斯勋爵与艾达一样痴迷于此,但在遭受重大损失后,拉芙莱斯勋爵停止了赌博,艾达继续秘密进行着。

在艾达生命的最后阶段,巴贝奇被深深卷入了她的赌博中。就艾达而言,她不止一次计划建造分析引擎来帮助巴贝奇筹集资金。这是一种奇怪的恶习、高级智力冒险和奇怪的创业精神的混合体。他们制造了一台井字游戏机,但当他们从一位顾问那里得知拇指将军汤姆(查理斯·舍伍德·史達通(Charles Sherwood Stratton,1838年1月4日-1883年7月15日),藝名「拇指將軍湯姆(General Tom Thumb)」)已经占领了游玩市场时,他们放弃了这个赚钱的冒险。讽刺的是,尽管巴贝奇的游戏机在商业上是失败的,但他的游戏机理论方法为未来的博弈论科学奠定了基础,甚至比二十世纪的天才约翰·冯·诺伊曼还要早一百年。

巴贝奇和艾达试图开发一个无懈可击的赌马系统,在这个过程中,艾达在她丈夫不知情的情况下,两次当掉他的家传珠宝,以支付赌徒的勒索费用。有一次,从不拒绝疯狂计划的艾达和巴贝奇,利用现有的小规模差分引擎工作模型来执行他们复杂的赌博计划所需的计算。这些计算是基于合理的赌博理论,但正如人工智能在一个多世纪后所了解的那样,即使是最好的建模程序也难以处理真正复杂的系统。他们输得很惨。更糟糕的是,当她的损失加重时,艾达不得不求助于她的母亲,而她的母亲并不是一个宽容的人,在她的丈夫得知珠宝被当掉之前,她不得不借钱赎回。

艾达在36岁时死于癌症。巴贝奇比她多活了几十年,但如果没有艾达的建议、支持,有时甚至是严厉的指导,他就无法完成他梦想已久的分析引擎。由于当时的工具制造技术达不到他的设计所要求的精确度,巴贝奇开创了在精密研磨中使用钻石尖的工具。为了使他的引擎部件的生产系统化,他设计了大量制造可互换部件的方法,并写了一篇关于后来被称为 "规模生产 "的经典论文。

巴贝奇写了各种各样的书,在一些科学领域取得了突破,而在另一些科学领域则失败了,他与查尔斯·达尔文这样的客人共享过辉煌的晚宴,但似乎最后仍以痛苦结束一生。鲍登指出,"在巴贝奇去世前不久,他告诉一位朋友,他不记得自己一生中有过一个完全快乐的日子:'他说话时,好像他恨整个人类,特别是英国人,最恨英国政府和风琴研磨师'"。

乔治·布尔

逻辑学 "宇宙 (1)"和 "无(0)"

尽管它来得太晚了,无法帮助分析引擎的最初设计,但另一个后来对计算机的建造至关重要的发现是由巴贝奇和拉芙莱斯的一个同龄人做出的。符号逻辑代数的创造是另一个英国人,但他工作和生活在一个不同的世界,远离伦敦上层社会。

1832年的一天,一位名叫乔治·布尔的17岁英国人在穿过一片草地时被一个惊人的启示所震撼。这个想法来得如此突然,并对他的生活产生了如此深刻的影响,它使布尔对一种迄今未被发现的人类设施做出了开创性的、即使是晦涩难懂的推测,他称之为 "无意识"。然而,布尔对人类知识的贡献不是在心理学领域,而是在他自己设计的一个领域。正如伯特兰·罗素在70年后所说,布尔发明了纯数学。

虽然他最近才开始研究数学,但十几岁的乔治-布尔突然看到了一种方法,可以用代数的形式捕捉人类理性的力量。布尔的方程在应用于逻辑问题时确实有效。但有一个问题,并不在布尔的概念中。当时的问题是,没有人关心这个问题。部分原因是他来自错误的社会阶层,部分原因是他那个时代的大多数数学家对逻辑知之甚少,布尔最终阐明这一见解时并没有引起多大的骚动。他的启示在他死后的几代人中基本上被忽视了。

100年后,当计算机技术的不同部分意外地融合在一起时,电气工程师需要数学工具来理解他们所发明的复杂机器。他们创造的开关网络是电路,其行为可以通过精确的方程式来描述和预测。由于电脉冲的模式现在被用来包含逻辑操作,如 "和"、"或 "和最重要的 "如果",以及计算器通常的"加"、"减"、"乘 "和 "除",因此需要用方程式来描述计算机电路的逻辑特性。

理想情况下,同一套数学工具可以同时用于电路和逻辑操作。20世纪30年代末的问题是,没有人知道有什么数学运算能够同时描述逻辑和电网络。

不过,对的头脑总会聚焦在对的地方。麻省理工学院的一位天才研究生克劳德·香农,后来发明了信息理论,他发现布尔的代数正是工程师们所寻找的东西。

如果没有布尔这个与艾达同年出生的贫穷的自学成才的数学教师,逻辑和数学之间的关键联系可能还要耽搁很久。虽然 "分析引擎 "是一次鼓舞人心的尝试,但它对后来创造现代计算机的思想家们的影响却非常小。然而,如果没有布尔代数,计算机技术可能永远不会发展到真正有趣的电子速度。

布尔正确地认识到了自己想法的重要性,尽管他如果看到真空管或开关电路,也不会知道拿这些东西做什么。与巴贝奇不同,布尔不是一个工程师。布尔在那片草地上发现并在20年后写在纸上的东西,注定要成为数学的关键,将软件的逻辑抽象与电子机器的物理操作结合起来。

在他们之间,巴贝奇和布尔的灵感可以说是出于两种不同的动机,这两种动机使几个世纪以来的想象者尝试并最终成功地制造了一台计算机。一边是科学家和工程师,他们总是渴望有一个设备来为他们处理繁琐的计算,从而解放他们的思想去追求更有趣的问题。另一边是数学思想的更抽象的愿望,即在一套符号中捕捉人类理性的本质。

艾达在看到巴贝奇的模型时立刻就明白了,而且她得到了德·摩根的指导,德·摩根是世界上最有能力理解布尔的人,她是第一个详细推测能够进行逻辑和数字运算的机器操作的人。布尔的作品直到拉芙莱斯女士去世后才发表。如果艾达再多活几年,她对编程原理的强大直觉把握将因布尔代数的使用而得到不可估量的提高。

巴贝奇和拉芙莱斯是帝国鼎盛时期的英国贵族。尽管有些人嘲笑巴贝奇经常在公共场合表现得很奇怪,但他的朋友中包括威灵顿公爵、查尔斯·狄更斯和阿尔伯特王子。艾达有机会得到最好的导师、最好的实验室设备和最新的书籍。他们都有发展自己想法的闲暇时间,如果他们愿意的话,还有在皇家学会面前出丑的特权。

布尔是一个小店主的儿子,这并不是获得良好科学教育的最佳途径。16岁时,由于家庭经济状况不稳定,布尔不得不在学校里谋一份不大不小的工作,做一名教师。面对数学课的教学任务,加上他的自我教育技能已经彻底林肯化了,布尔开始学习数学。他很快了解到,对于他这样的人来说,这是最具成本效益的智力努力,不需要实验室设备和相当少的基本书籍。十七岁时,他体验到了在他后来的工作中产生的灵感,但在他有能力向世界展示他的发现之前,他在数学和逻辑方面还有很多东西需要学习。

二十岁时,他发现了他那个时代最伟大的数学家所忽略的东西--一种不变量的代数理论,这将成为爱因斯坦相对论不可或缺的工具。1849年,在做了多年的小学教师后,布尔的数学著作为他带来了爱尔兰科克女王学院的数学教授的任命。五年后,他发表了《对思维规律的研究》,在此基础上建立了《逻辑和概率的数学理论》。

正式的逻辑学从希腊人的时代就已经存在,最广为人知的是亚里士多德完善的三段论形式,大多数人学到的简化版本不过如此。"所有的人都是凡人。苏格拉底是一个人。因此,苏格拉底是凡人"。以同样的形式存在了几千年之后,亚里士多德的逻辑似乎注定要停留在形而上学的外部边界,永远无法突破到更具体的数学领域,因为它仍然只是一个文字的问题。缺失了下一层次的符号精确性。

一千多年来,唯一可以用严格和精确的符号来表达的、足以被称为 "数学 "的逻辑系统是欧几里德制定的几何学。正如欧几里德在公理和空间图形定理中规定了几何学的基本声明和规则一样,布尔在代数符号中规定了逻辑学的基本内容。这并不是一个小的野心。虽然几何学知识是一个广泛有用的工具,可以让人在世界范围内游刃有余,但布尔坚信,逻辑是人类理性本身的关键。他知道,他已经找到了从亚里士多德到笛卡尔的每一位形而上学家所忽略的东西。在他的第一章中,布尔写道。

    1.    下面这篇论文的目的是研究那些进行推理的思维活动的基本规律;用微积分的符号语言来表达它们,并在此基础上建立一门逻辑学和构建它的方法......从这些研究过程中所看到的各种真理要素中收集一些关于人类思维的性质和结构的可能模仿. . .


    2.    使我们能够从给定的前提中推导出正确的推论,并不是逻辑学的唯一目标......这些研究还具有另一种兴趣,来自于它们对智力的启发。它们指导我们了解语言和数字将如何成为推理过程的工具性辅助手段;它们在某种程度上揭示了我们共同智力的不同力量之间的联系;它们在我们面前展示了......真理和正确性的基本标准--这些标准不是来自外部,而是深深建立在人类能力的构成中......。展开那些高级思维能力的秘密法则和关系,通过这些法则和关系,所有超越对世界和对我们自己的感知的知识都得到了实现或成熟,这是一个不需要对理性思维进行赞扬的目标。尽管他的发现对纯数学和电气工程都产生了深远的影响,但布尔的逻辑代数中最重要的内容在原则上是简单的。他以每个人在学校学到的代数为起点,对代数组合的标准规则添加了几个小但重要的例外,并用他的特殊版本精确地表达了经典逻辑。

布尔用来连接逻辑和计算这两个迄今不同的思维工具的概念是一个数学系统,其中只有两个量,他称之为 "宇宙 "和 "无",用符号1和0来表示。虽然布尔当时并不知道,但他发明了一种用于量化逻辑的两态系统,这恰好也是分析电气继电器或真空管等两态物理设备逻辑的完美方法。

通过使用指定的符号和操作,逻辑命题可以被简化为等式,三段论结论可以根据一般的代数规则计算。通过应用纯粹的数学运算,任何懂得布尔代数的人都可以发现任何逻辑上包含在任何一组特定前提中的结论。

由于演绎逻辑非常接近人类推理的思维过程,布尔确信他的代数不仅证明了数学和逻辑之间的有效等价关系,而且还代表了人类思维的数学系统化。自布尔的时代以来,科学已经了解到,人类的理性工具远比形式逻辑的工具复杂、模糊、不可预测和强大。但数学家们发现,布尔的数理逻辑对于他们事业的基础比他们最初怀疑的要重要得多。而第一台计算机的发明者们了解到,一个只有两个值的简单系统确实可以编织出非常复杂的计算。

在数学和逻辑之间构建一座理论桥梁的工作已经光荣地开始了,但布尔的工作远未完成。后来的人们发现,虽然人类的思维可能并不像机器,但通过思考类似于思维运作的机器,仍然可以获得巨大的力量。

十九世纪的技术根本不够精确,不够快,也不够强大,像巴贝奇、拉夫莱斯和布尔这样的想法无法成为现实。制造现代计算机的几个最重要的部件所需的基础科学和工业能力根本不存在。仍有一些重要的问题必须由发明家而不是理论家来解决。

赫尔曼·霍勒里斯

数据处理者 打孔卡系统的发明

打孔卡系统

计算史上的下一个重要发展,也是十九世纪的最后一个重要贡献,与计算对数表或设计思维定律毫无关系。下一个推动这一技术状态的思想家是赫尔曼·霍勒里斯,一个美国人口普查办公室的19岁雇员。他的作用不会对计算的重要理论基础产生影响。最终,他的发明被淘汰了。但他的小创新最终发展成为主导计算机技术商业应用的产业。

霍勒里斯是第一个对计算的发展做出重要贡献的美国人,当时他在人口普查办公室的上司让他做一个数据收集和制表的自动化方案。根据他上司的建议,他设计了一个系统,该系统借助打孔卡片将信息输入一个电子计数系统。

1890年的人口普查是数据处理以及数学方程计算成为自动化对象的历史节点。事实证明,霍勒里斯既不是数学家也不是逻辑学家,而是一个数据处理者。他正在努力解决的不是数字计算,而是收集、分类、存储和检索信息集合中的大量小项目。霍勒里斯和他的同事们在不知不觉中成为了二十世纪信息工作者的先驱,因为他们的任务是寻找一种自动化的方法来记录和组织已有信息。

霍勒里斯是由他的上司约翰·肖·比林斯引入这项任务的,自1870年以来,他一直在担心信息潮的上升,当时他受雇于人口普查办公室,开发处理大量信息的新方法。由于他负责1880年和1890年人口普查的数据收集和制表,比林斯敏锐地意识到,国家人口的增长使政府每十年进行一次宪法规定的调查能力变得紧张。在可预见的未来,需要统计和分类的信息需要15年或20年的时间来进行统计!

就像计算机其他组件的起源故事一样,打孔卡系统的发明究竟归功于谁也有一些争议。霍勒里斯曾经的同事(比林斯的员工)威尔科克斯回忆道:

当第十次(1881年)人口普查的报表在华盛顿进行统计时,比林斯与一个同伴走过办公室,里面有数百名办事员正在通过缓慢而令人心碎的手工统计方法,费力地将信息项目从表上转移到记录表上。当他们看着这些文员时,他对他的同伴说:"应该有一些机械的方法来完成这项工作,就像提花织机的原理一样,在卡片上的孔可以调节要织的图案。“这颗种子便在那时种下了。


他的同伴是公司里一位才华横溢的年轻工程师,他首先自己知道这个想法是可行的,然后明白他的上司比林斯对具体怎么解决并不在意。

这位 "有才华的年轻工程师 "就是霍勒里斯。他在1919年的回忆录里写道:

一个星期天的晚上,在比林斯博士的茶桌上,他对我说,应该有一台机器来做人口统计和类似统计数字的纯机械工作。我们讨论了这个问题,我记得......他想到使用卡片,通过在卡片边缘打上凹槽来显示个人的描述。研究完这个问题后,我回到比林斯博士那里,说我认为我可以解决这个问题,并问他是否愿意和我一起深入研究。博士说,他只想要解决问题,除此之外(具体怎么干)没有任何兴趣。霍勒里斯系统在纸板卡片的指定位置打孔,以代表每个受访者的人口统计学特征。与提花织机和巴贝奇的卡片以及当时流行的 "播放式钢琴 "一样,霍勒里卡片上的孔是为了让机械部件通过。霍勒里斯使用了一种机电式计数器,其中铜刷在遇到孔时关闭某些电路,而在没有孔的情况下则不关闭电路。

每关闭一个类别的电路,电启动的机制就会使该类别的运行计数增加一个单位。通过增加分类装置,根据孔的模式和所需的表格类型,将卡片分配到不同的箱中,霍勒里斯的系统不仅能处理大量数据,而且对数据提出新的和更复杂的问题。新系统在1890年的人口普查运作良好。

霍勒里斯及时发明了打孔卡系统,使国家免于淹没在自己的统计数据中,并于事后申请了专利。1882年至1883年,他在麻省理工学院担任机械工程讲师,建立了该机构与计算机科学和技术发展之间最早的联系。1896年,霍勒里斯成立了 "制表机公司",生产卡片和读卡机。1900年,霍勒里斯将他的设备租给了人口普查局用于第十二次人口普查。

几年后,霍利斯的制表机已经发展为一个名为 "国际商业机器 "的机构,由一个名叫托马斯·沃森的老人经营。但是,在制表机和打孔卡制造商与真正的计算机发生任何关系之前,还隔着两次世界大战,和几位思想家--其中最杰出的一位——还没等到制表机和穿孔卡片制造商与真正的计算机有任何关系的时候。这家公司在现代所关注的问题--销售机器来记录与做生意有关的信息--将不得不等待一些非常严肃业务的交易。

战争期间的思想家

寻求更强大和优雅的符号系统

战争部门,而不是人口普查局或商业机器公司,是数字计算机的母亲,而助产士有很多--从阿兰·图灵的英国团队需要一种特殊的计算设备来破解德国密码。到约翰··诺伊曼(John von Neumann)在洛斯阿拉莫斯(Los Alamos)的数学家们,他们面临着制造原子弹所涉及的几乎不可逾越的计算,到诺伯特·韦纳(Norbert Weiner)的研究人员,他们正在发明更好更快的方法来瞄准防空火力,到陆军弹道研究实验室的项目,产生了电子数值积分器和计算器(ENIAC)。

如果不了解计算机在近代的起源,就猜测计算机在不久的将来会成为什么,不是明智之举。ENIAC,第一台电子数字计算机,最初是为了计算弹道射击表而建造的。当ENIAC的发明者后来设计出第一台微型计算机时,它就是BINAC,这个装置小到可以装在洲际弹道导弹的鼻锥里,并且聪明到可以通过星星的位置来导航。

尽管第一台电子数字计算机的建造是为了生产更精确的武器,但如果没有至少一个与弹道学或炸弹无关的重要理论突破,这项技术是不可能的。计算的理论渊源不是在寻找更有效的武器装备,而是在寻求更强大和优雅的符号系统。

第一台现代计算机并不是一台机器。它甚至不是一个蓝图。数字计算机被设想为一个符号系统,一个自动符号系统,而不是一个工具或武器。而发明它的人并不关心弹道学或计算,而是关心思想的本质和机器的本质。


原文链接阅读原文

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
洛杉矶机场的安检员是内鬼,通过厕所两次走私毒品,只赚了4000美元,丢了工作还面临20年坐牢...信 & 洋葱的摇篮曲现在的程序员,接offer看的不是薪资,而是……《女士的法则》首评:彭昱畅江疏影“姐弟恋”,只能做成职场“爽剧”吗?程序员润德国一点也不难,难的是…又要“一切为了保卫苏维埃”啦?GNU C 编译器的程序员入门指南 | Linux 中国程序员的真人秀又来了!小哥哥们没有秃头,没有穿格子衫,节目没有剧本将作家变为程序员:如何做更快速、更可持续的剧情研发?《极地重生》与年轻女人二次逃生大城市是没结果的现任,小镇公务员是回不去的前任一位女强人与4亿美元庞氏骗局程序员们,快把这款AI“魔法”做到手机相机里,求求了神奇!一位女游客向迪士尼索赔100000美元,竟然被加州法庭支持了…“你们没事先告知这儿有虫子”字节跳动,来了一位女CFO苹果以色列研发中心招募60名巴勒斯坦程序员 Apple Palestine银发女士:拥抱真实的感觉太好了复盘|选演员是看“流量”还是看“气象”?听听陈凯歌、曹保平、赵宝刚怎么说Original Joe's 意式午餐最适合程序员的 10 款 Linux 发行版 | Linux 中国“被毕业”下的深圳IT程序员,有人当场破防流泪,有人985硕士刚工作1年,有人大厂总监年近40...盲人也能做程序员?深圳这俩哥们教会了我什么叫“硬”。【追剧笔记】看了个寂寞这名“业余”程序员,曾用50张1080Ti对抗癌症。恐怖!大温1天2起捅人致命案,不过素里的女士有福了2个抖音工程师搞出新工具,意外风靡字节内部,项目经理用上安静多了,程序员不骗程序员六年团队Leader实战秘诀|程序员最重要的八种软技能以色列执政联盟再陷危机,沦为少数派,这次又是因为一位女议员 Arab MK科技爱好者周刊(第209期):程序员是怎样的人当一个程序员去做HR,造轮子是首要任务程序员郭宇,28岁退休之后经济不好,有人建议对程序员征收重税,100万收80万的税,分配给穷人!美国“凡尔赛女王”:程序员变顶级贵妇,装修18年山寨皇宫差点变成烂尾房…一位女权主义者的健身房自白Github 有份程序员们做的菜谱,终于没有了该死的“适量”
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。